@@ -695,146 +695,76 @@ const TldrawCanvasShared = ({
695695 } ;
696696
697697 // COMPONENTS
698- const defaultEditorComponents : TLEditorComponents = useMemo (
699- ( ) => ( {
700- Scribble : TldrawScribble ,
701- CollaboratorScribble : TldrawScribble ,
702- SelectionForeground : TldrawSelectionForeground ,
703- SelectionBackground : TldrawSelectionBackground ,
704- Handles : TldrawHandles ,
705- } ) ,
706- [ ] ,
707- ) ;
708- const editorComponents : TLEditorComponents = useMemo (
709- ( ) => ( {
710- ...defaultEditorComponents ,
711- OnTheCanvas : ToastListener ,
712- } ) ,
713- [ defaultEditorComponents ] ,
714- ) ;
715- const customUiComponents : TLUiComponents = useMemo (
716- ( ) =>
717- createUiComponents ( {
718- allNodes,
719- allRelationNames,
720- allAddReferencedNodeActions,
721- canvasSyncMode,
722- onCanvasSyncModeChange,
723- } ) ,
724- [
725- allNodes ,
726- allRelationNames ,
727- allAddReferencedNodeActions ,
728- canvasSyncMode ,
729- onCanvasSyncModeChange ,
730- ] ,
731- ) ;
698+ const defaultEditorComponents : TLEditorComponents = {
699+ Scribble : TldrawScribble ,
700+ CollaboratorScribble : TldrawScribble ,
701+ SelectionForeground : TldrawSelectionForeground ,
702+ SelectionBackground : TldrawSelectionBackground ,
703+ Handles : TldrawHandles ,
704+ } ;
705+ const editorComponents : TLEditorComponents = {
706+ ...defaultEditorComponents ,
707+ OnTheCanvas : ToastListener ,
708+ } ;
709+ const customUiComponents : TLUiComponents = createUiComponents ( {
710+ allNodes,
711+ allRelationNames,
712+ allAddReferencedNodeActions,
713+ canvasSyncMode,
714+ onCanvasSyncModeChange,
715+ } ) ;
732716
733717 // UTILS
734- const discourseNodeUtils = useMemo (
735- ( ) => createNodeShapeUtils ( allNodes ) ,
736- [ allNodes ] ,
737- ) ;
738- const discourseRelationUtils = useMemo (
739- ( ) => createAllRelationShapeUtils ( allRelationIds ) ,
740- [ allRelationIds ] ,
741- ) ;
742- const referencedNodeUtils = useMemo (
743- ( ) => createAllReferencedNodeUtils ( allAddReferencedNodeByAction ) ,
744- [ allAddReferencedNodeByAction ] ,
745- ) ;
746- const customShapeUtils = useMemo (
747- ( ) => [
748- ...discourseNodeUtils ,
749- ...discourseRelationUtils ,
750- ...referencedNodeUtils ,
751- ] ,
752- [ discourseNodeUtils , discourseRelationUtils , referencedNodeUtils ] ,
718+ const discourseNodeUtils = createNodeShapeUtils ( allNodes ) ;
719+ const discourseRelationUtils = createAllRelationShapeUtils ( allRelationIds ) ;
720+ const referencedNodeUtils = createAllReferencedNodeUtils (
721+ allAddReferencedNodeByAction ,
753722 ) ;
723+ const customShapeUtils = [
724+ ...discourseNodeUtils ,
725+ ...discourseRelationUtils ,
726+ ...referencedNodeUtils ,
727+ ] ;
754728
755729 // TOOLS
756- const discourseGraphTool = useMemo (
757- ( ) =>
758- class DiscourseGraphTool extends StateNode {
759- static override id = "discourse-tool" ;
760- static override initial = "idle" ;
761- } ,
762- [ ] ,
763- ) ;
764- const discourseNodeTools = useMemo (
765- ( ) => createNodeShapeTools ( allNodes ) ,
766- [ allNodes ] ,
767- ) ;
768- const discourseRelationTools = useMemo (
769- ( ) => createAllRelationShapeTools ( allRelationNames ) ,
770- [ allRelationNames ] ,
771- ) ;
772- const referencedNodeTools = useMemo (
773- ( ) => createAllReferencedNodeTools ( allAddReferencedNodeByAction ) ,
774- [ allAddReferencedNodeByAction ] ,
775- ) ;
776- const customTools = useMemo (
777- ( ) => [
778- discourseGraphTool ,
779- ...discourseNodeTools ,
780- ...discourseRelationTools ,
781- ...referencedNodeTools ,
782- ] ,
783- [
784- discourseGraphTool ,
785- discourseNodeTools ,
786- discourseRelationTools ,
787- referencedNodeTools ,
788- ] ,
730+ const discourseGraphTool = class DiscourseGraphTool extends StateNode {
731+ static override id = "discourse-tool" ;
732+ static override initial = "idle" ;
733+ } ;
734+ const discourseNodeTools = createNodeShapeTools ( allNodes ) ;
735+ const discourseRelationTools = createAllRelationShapeTools ( allRelationNames ) ;
736+ const referencedNodeTools = createAllReferencedNodeTools (
737+ allAddReferencedNodeByAction ,
789738 ) ;
739+ const customTools = [
740+ discourseGraphTool ,
741+ ...discourseNodeTools ,
742+ ...discourseRelationTools ,
743+ ...referencedNodeTools ,
744+ ] ;
790745
791746 // BINDINGS
792- const relationBindings = useMemo (
793- ( ) => createAllRelationBindings ( allRelationIds ) ,
794- [ allRelationIds ] ,
795- ) ;
796- const referencedNodeBindings = useMemo (
797- ( ) => createAllReferencedNodeBindings ( allAddReferencedNodeByAction ) ,
798- [ allAddReferencedNodeByAction ] ,
799- ) ;
800- const customBindingUtils = useMemo (
801- ( ) => [ ...relationBindings , ...referencedNodeBindings ] ,
802- [ relationBindings , referencedNodeBindings ] ,
803- ) ;
804- const customShapeTypes = useMemo (
805- ( ) =>
806- customShapeUtils
807- . map ( ( s ) => ( s as unknown as { type ?: string } ) . type )
808- . filter ( ( t ) : t is string => ! ! t ) ,
809- [ customShapeUtils ] ,
810- ) ;
811- const customBindingTypes = useMemo (
812- ( ) =>
813- customBindingUtils
814- . map ( ( b ) => ( b as unknown as { type ?: string } ) . type )
815- . filter ( ( t ) : t is string => ! ! t ) ,
816- [ customBindingUtils ] ,
747+ const relationBindings = createAllRelationBindings ( allRelationIds ) ;
748+ const referencedNodeBindings = createAllReferencedNodeBindings (
749+ allAddReferencedNodeByAction ,
817750 ) ;
751+ const customBindingUtils = [ ...relationBindings , ...referencedNodeBindings ] ;
752+ const customShapeTypes = customShapeUtils
753+ . map ( ( s ) => ( s as unknown as { type ?: string } ) . type )
754+ . filter ( ( t ) : t is string => ! ! t ) ;
755+ const customBindingTypes = customBindingUtils
756+ . map ( ( b ) => ( b as unknown as { type ?: string } ) . type )
757+ . filter ( ( t ) : t is string => ! ! t ) ;
818758
819759 // UI OVERRIDES
820- const uiOverrides = useMemo (
821- ( ) =>
822- createUiOverrides ( {
823- allNodes,
824- allRelationNames,
825- allAddReferencedNodeByAction,
826- toggleMaximized : handleMaximizedChange ,
827- setConvertToDialogOpen,
828- discourseContext,
829- } ) ,
830- [
831- allNodes ,
832- allRelationNames ,
833- allAddReferencedNodeByAction ,
834- handleMaximizedChange ,
835- setConvertToDialogOpen ,
836- ] ,
837- ) ;
760+ const uiOverrides = createUiOverrides ( {
761+ allNodes,
762+ allRelationNames,
763+ allAddReferencedNodeByAction,
764+ toggleMaximized : handleMaximizedChange ,
765+ setConvertToDialogOpen,
766+ discourseContext,
767+ } ) ;
838768
839769 // STORE
840770 useEffect ( ( ) => {
@@ -853,10 +783,7 @@ const TldrawCanvasShared = ({
853783 [ allRelationIds , allAddReferencedNodeActions , allNodes ] ,
854784 ) ;
855785
856- const migrations = useMemo (
857- ( ) => [ arrowShapeMigrations ] ,
858- [ arrowShapeMigrations ] ,
859- ) ;
786+ const migrations = [ arrowShapeMigrations ] ;
860787 const { store, needsUpgrade, performUpgrade, error, isLoading } =
861788 useStoreAdapter ( {
862789 migrations,
0 commit comments