use-editor-props.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import '@flowgram.ai/fixed-layout-editor/index.css';
  2. import { useMemo } from 'react';
  3. import { createMinimapPlugin } from '@flowgram.ai/minimap-plugin';
  4. import { defaultFixedSemiMaterials } from '@flowgram.ai/fixed-semi-materials';
  5. import { FlowRendererKey, FixedLayoutProps } from '@flowgram.ai/fixed-layout-editor';
  6. import { NodeRender } from './node-render';
  7. import { nodeRegistries } from './node-registries';
  8. import { initialData } from './initial-data';
  9. import { Adder } from './adder';
  10. export function useEditorProps(): FixedLayoutProps {
  11. return useMemo<FixedLayoutProps>(
  12. () => ({
  13. plugins: () => [
  14. createMinimapPlugin({
  15. enableDisplayAllNodes: true,
  16. }),
  17. ],
  18. nodeRegistries,
  19. initialData,
  20. onAllLayersRendered: (ctx) => {
  21. setTimeout(() => {
  22. ctx.playground.config.fitView(ctx.document.root.bounds.pad(30));
  23. }, 10);
  24. },
  25. materials: {
  26. renderDefaultNode: NodeRender,
  27. components: {
  28. ...defaultFixedSemiMaterials,
  29. [FlowRendererKey.ADDER]: Adder,
  30. },
  31. },
  32. }),
  33. []
  34. );
  35. }