From 7650c55b4ff5f61071dbaffc73266259e0793e8e Mon Sep 17 00:00:00 2001 From: bymyself Date: Sat, 6 Sep 2025 01:15:26 -0700 Subject: [PATCH] refactor rendering-related files to DDD organization --- src/components/breadcrumb/SubgraphBreadcrumb.vue | 2 +- src/components/graph/DomWidgets.vue | 2 +- src/components/graph/GraphCanvas.vue | 8 ++++---- src/components/graph/GraphCanvasMenu.vue | 2 +- src/components/graph/SelectionToolbox.vue | 2 +- src/components/graph/TitleEditor.vue | 5 ++++- src/components/graph/modals/ZoomControlsModal.vue | 2 +- src/components/graph/selectionToolbox/BypassButton.vue | 2 +- .../graph/selectionToolbox/ColorPickerButton.spec.ts | 2 +- .../graph/selectionToolbox/ColorPickerButton.vue | 2 +- .../graph/selectionToolbox/ConvertToSubgraphButton.vue | 2 +- src/components/graph/selectionToolbox/DeleteButton.vue | 2 +- src/components/graph/selectionToolbox/ExecuteButton.vue | 2 +- src/components/graph/selectionToolbox/HelpButton.vue | 2 +- .../graph/selectionToolbox/Load3DViewerButton.vue | 2 +- .../graph/selectionToolbox/MaskEditorButton.vue | 2 +- src/components/graph/selectionToolbox/PinButton.vue | 2 +- src/components/graph/widgets/DomWidget.vue | 2 +- src/components/searchbox/NodeSearchBoxPopover.vue | 2 +- src/composables/canvas/useCanvasTransformSync.ts | 2 +- src/composables/canvas/useSelectedLiteGraphItems.ts | 2 +- src/composables/canvas/useSelectionToolboxPosition.ts | 2 +- src/composables/element/useAbsolutePosition.ts | 2 +- src/composables/graph/useCanvasInteractions.ts | 2 +- src/composables/graph/useGraphNodeManager.ts | 2 +- src/composables/useCopy.ts | 2 +- src/composables/useCoreCommands.ts | 5 ++++- src/composables/useLitegraphSettings.ts | 2 +- src/composables/usePaste.ts | 2 +- src/composables/useRefreshableSelection.ts | 2 +- .../graphStore.ts => renderer/core/canvas/canvasStore.ts} | 0 .../core/layout/__tests__}/TransformPane.spec.ts | 4 ++-- .../core/layout/transform}/TransformPane.vue | 6 +++--- .../core/layout/transform}/useCanvasTransformSync.ts | 2 +- .../core/layout/transform}/useTransformSettling.ts | 0 .../core/layout/transform}/useTransformState.ts | 2 +- src/{utils => renderer/core}/spatial/QuadTree.ts | 0 src/renderer/core/spatial/SpatialIndex.ts | 3 ++- .../graph => renderer/extensions/minimap}/MiniMap.vue | 0 .../extensions/minimap}/MiniMapPanel.vue | 0 src/renderer/extensions/minimap/composables/useMinimap.ts | 2 +- .../vueNodes/widgets/composables/useImagePreviewWidget.ts | 2 +- src/renderer/thumbnail/graphThumbnailRenderer.ts | 2 +- src/services/litegraphService.ts | 2 +- src/stores/executionStore.ts | 2 +- src/stores/subgraphNavigationStore.ts | 2 +- src/types/spatialIndex.ts | 2 +- tests-ui/tests/components/graph/ZoomControlsModal.spec.ts | 2 +- .../composables/canvas/useCanvasTransformSync.test.ts | 2 +- .../composables/canvas/useSelectedLiteGraphItems.test.ts | 2 +- .../tests/composables/element/useTransformState.test.ts | 2 +- .../tests/composables/graph/useCanvasInteractions.test.ts | 4 ++-- .../composables/graph/useCanvasTransformSync.test.ts | 2 +- .../tests/composables/graph/useTransformSettling.test.ts | 2 +- tests-ui/tests/composables/useMinimap.test.ts | 2 +- tests-ui/tests/performance/transformPerformance.test.ts | 2 +- tests-ui/tests/store/subgraphNavigationStore.test.ts | 2 +- .../tests/store/subgraphNavigationStore.viewport.test.ts | 2 +- tests-ui/tests/utils/spatial/QuadTree.test.ts | 2 +- 59 files changed, 68 insertions(+), 61 deletions(-) rename src/{stores/graphStore.ts => renderer/core/canvas/canvasStore.ts} (100%) rename src/{components/graph => renderer/core/layout/__tests__}/TransformPane.spec.ts (98%) rename src/{components/graph => renderer/core/layout/transform}/TransformPane.vue (87%) rename src/{composables/graph => renderer/core/layout/transform}/useCanvasTransformSync.ts (97%) rename src/{composables/graph => renderer/core/layout/transform}/useTransformSettling.ts (100%) rename src/{composables/element => renderer/core/layout/transform}/useTransformState.ts (99%) rename src/{utils => renderer/core}/spatial/QuadTree.ts (100%) rename src/{components/graph => renderer/extensions/minimap}/MiniMap.vue (100%) rename src/{components/graph => renderer/extensions/minimap}/MiniMapPanel.vue (100%) diff --git a/src/components/breadcrumb/SubgraphBreadcrumb.vue b/src/components/breadcrumb/SubgraphBreadcrumb.vue index af6324aa9..c263eebd5 100644 --- a/src/components/breadcrumb/SubgraphBreadcrumb.vue +++ b/src/components/breadcrumb/SubgraphBreadcrumb.vue @@ -38,7 +38,7 @@ import { computed, onUpdated, ref, watch } from 'vue' import SubgraphBreadcrumbItem from '@/components/breadcrumb/SubgraphBreadcrumbItem.vue' import { useOverflowObserver } from '@/composables/element/useOverflowObserver' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useSubgraphNavigationStore } from '@/stores/subgraphNavigationStore' import { useWorkflowStore } from '@/stores/workflowStore' import { forEachSubgraphNode } from '@/utils/graphTraversalUtil' diff --git a/src/components/graph/DomWidgets.vue b/src/components/graph/DomWidgets.vue index 7edca3f5e..da174cf22 100644 --- a/src/components/graph/DomWidgets.vue +++ b/src/components/graph/DomWidgets.vue @@ -16,8 +16,8 @@ import { computed } from 'vue' import DomWidget from '@/components/graph/widgets/DomWidget.vue' import { useChainCallback } from '@/composables/functional/useChainCallback' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useDomWidgetStore } from '@/stores/domWidgetStore' -import { useCanvasStore } from '@/stores/graphStore' const domWidgetStore = useDomWidgetStore() diff --git a/src/components/graph/GraphCanvas.vue b/src/components/graph/GraphCanvas.vue index 467da7e5d..a49a2de2c 100644 --- a/src/components/graph/GraphCanvas.vue +++ b/src/components/graph/GraphCanvas.vue @@ -89,15 +89,12 @@ import LiteGraphCanvasSplitterOverlay from '@/components/LiteGraphCanvasSplitter import BottomPanel from '@/components/bottomPanel/BottomPanel.vue' import DomWidgets from '@/components/graph/DomWidgets.vue' import GraphCanvasMenu from '@/components/graph/GraphCanvasMenu.vue' -import MiniMap from '@/components/graph/MiniMap.vue' import NodeTooltip from '@/components/graph/NodeTooltip.vue' import SelectionToolbox from '@/components/graph/SelectionToolbox.vue' import TitleEditor from '@/components/graph/TitleEditor.vue' -import TransformPane from '@/components/graph/TransformPane.vue' import NodeSearchboxPopover from '@/components/searchbox/NodeSearchBoxPopover.vue' import SideToolbar from '@/components/sidebar/SideToolbar.vue' import SecondRowWorkflowTabs from '@/components/topbar/SecondRowWorkflowTabs.vue' -import { useTransformState } from '@/composables/element/useTransformState' import { useChainCallback } from '@/composables/functional/useChainCallback' import { useGraphNodeManager } from '@/composables/graph/useGraphNodeManager' import type { @@ -117,12 +114,16 @@ import { useWorkflowPersistence } from '@/composables/useWorkflowPersistence' import { CORE_SETTINGS } from '@/constants/coreSettings' import { i18n, t } from '@/i18n' import type { LGraphCanvas, LGraphNode } from '@/lib/litegraph/src/litegraph' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' +import TransformPane from '@/renderer/core/layout/TransformPane.vue' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' import { layoutStore } from '@/renderer/core/layout/store/layoutStore' import { useLayoutSync } from '@/renderer/core/layout/sync/useLayoutSync' import { useLinkLayoutSync } from '@/renderer/core/layout/sync/useLinkLayoutSync' import { useSlotLayoutSync } from '@/renderer/core/layout/sync/useSlotLayoutSync' +import { useTransformState } from '@/renderer/core/layout/transform/useTransformState' import { LayoutSource } from '@/renderer/core/layout/types' +import MiniMap from '@/renderer/extensions/minimap/MiniMap.vue' import VueGraphNode from '@/renderer/extensions/vueNodes/components/LGraphNode.vue' import { UnauthorizedError, api } from '@/scripts/api' import { app as comfyApp } from '@/scripts/app' @@ -133,7 +134,6 @@ import { newUserService } from '@/services/newUserService' import { useWorkflowService } from '@/services/workflowService' import { useCommandStore } from '@/stores/commandStore' import { useExecutionStore } from '@/stores/executionStore' -import { useCanvasStore } from '@/stores/graphStore' import { useNodeDefStore } from '@/stores/nodeDefStore' import { useSettingStore } from '@/stores/settingStore' import { useToastStore } from '@/stores/toastStore' diff --git a/src/components/graph/GraphCanvasMenu.vue b/src/components/graph/GraphCanvasMenu.vue index bd8490321..c489a2329 100644 --- a/src/components/graph/GraphCanvasMenu.vue +++ b/src/components/graph/GraphCanvasMenu.vue @@ -127,9 +127,9 @@ import { useI18n } from 'vue-i18n' import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions' import { useZoomControls } from '@/composables/useZoomControls' import { LiteGraph } from '@/lib/litegraph/src/litegraph' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useMinimap } from '@/renderer/extensions/minimap/composables/useMinimap' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' import { useSettingStore } from '@/stores/settingStore' import { useWorkspaceStore } from '@/stores/workspaceStore' diff --git a/src/components/graph/SelectionToolbox.vue b/src/components/graph/SelectionToolbox.vue index 9117a2c2e..626b32aa3 100644 --- a/src/components/graph/SelectionToolbox.vue +++ b/src/components/graph/SelectionToolbox.vue @@ -51,9 +51,9 @@ import PinButton from '@/components/graph/selectionToolbox/PinButton.vue' import RefreshSelectionButton from '@/components/graph/selectionToolbox/RefreshSelectionButton.vue' import { useSelectionToolboxPosition } from '@/composables/canvas/useSelectionToolboxPosition' import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useExtensionService } from '@/services/extensionService' import { type ComfyCommandImpl, useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' const commandStore = useCommandStore() const canvasStore = useCanvasStore() diff --git a/src/components/graph/TitleEditor.vue b/src/components/graph/TitleEditor.vue index 220b549fb..60f24d381 100644 --- a/src/components/graph/TitleEditor.vue +++ b/src/components/graph/TitleEditor.vue @@ -24,8 +24,11 @@ import { LiteGraph } from '@/lib/litegraph/src/litegraph' import type { LiteGraphCanvasEvent } from '@/lib/litegraph/src/litegraph' +import { + useCanvasStore, + useTitleEditorStore +} from '@/renderer/core/canvas/canvasStore' import { app } from '@/scripts/app' -import { useCanvasStore, useTitleEditorStore } from '@/stores/graphStore' import { useSettingStore } from '@/stores/settingStore' const settingStore = useSettingStore() diff --git a/src/components/graph/modals/ZoomControlsModal.vue b/src/components/graph/modals/ZoomControlsModal.vue index b649ce6a5..d2bb007ee 100644 --- a/src/components/graph/modals/ZoomControlsModal.vue +++ b/src/components/graph/modals/ZoomControlsModal.vue @@ -139,9 +139,9 @@ import { Button, InputNumber, InputNumberInputEvent } from 'primevue' import { computed, nextTick, ref, watch } from 'vue' import { useI18n } from 'vue-i18n' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useMinimap } from '@/renderer/extensions/minimap/composables/useMinimap' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' import { useSettingStore } from '@/stores/settingStore' const { t } = useI18n() diff --git a/src/components/graph/selectionToolbox/BypassButton.vue b/src/components/graph/selectionToolbox/BypassButton.vue index 7ae84f8e6..bf18361d5 100644 --- a/src/components/graph/selectionToolbox/BypassButton.vue +++ b/src/components/graph/selectionToolbox/BypassButton.vue @@ -22,8 +22,8 @@ import Button from 'primevue/button' import { useI18n } from 'vue-i18n' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' const { t } = useI18n() const commandStore = useCommandStore() diff --git a/src/components/graph/selectionToolbox/ColorPickerButton.spec.ts b/src/components/graph/selectionToolbox/ColorPickerButton.spec.ts index dac0ed084..d8a114c75 100644 --- a/src/components/graph/selectionToolbox/ColorPickerButton.spec.ts +++ b/src/components/graph/selectionToolbox/ColorPickerButton.spec.ts @@ -7,7 +7,7 @@ import { createI18n } from 'vue-i18n' // Import after mocks import ColorPickerButton from '@/components/graph/selectionToolbox/ColorPickerButton.vue' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useWorkflowStore } from '@/stores/workflowStore' // Mock the litegraph module diff --git a/src/components/graph/selectionToolbox/ColorPickerButton.vue b/src/components/graph/selectionToolbox/ColorPickerButton.vue index 0092e473e..a464d4886 100644 --- a/src/components/graph/selectionToolbox/ColorPickerButton.vue +++ b/src/components/graph/selectionToolbox/ColorPickerButton.vue @@ -55,7 +55,7 @@ import { LiteGraph, isColorable } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useWorkflowStore } from '@/stores/workflowStore' import { useColorPaletteStore } from '@/stores/workspace/colorPaletteStore' import { adjustColor } from '@/utils/colorUtil' diff --git a/src/components/graph/selectionToolbox/ConvertToSubgraphButton.vue b/src/components/graph/selectionToolbox/ConvertToSubgraphButton.vue index ef6e27260..e9e93d7c8 100644 --- a/src/components/graph/selectionToolbox/ConvertToSubgraphButton.vue +++ b/src/components/graph/selectionToolbox/ConvertToSubgraphButton.vue @@ -35,8 +35,8 @@ import { computed } from 'vue' import { useI18n } from 'vue-i18n' import { SubgraphNode } from '@/lib/litegraph/src/litegraph' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' const { t } = useI18n() const commandStore = useCommandStore() diff --git a/src/components/graph/selectionToolbox/DeleteButton.vue b/src/components/graph/selectionToolbox/DeleteButton.vue index 7c341614e..1ea2f4199 100644 --- a/src/components/graph/selectionToolbox/DeleteButton.vue +++ b/src/components/graph/selectionToolbox/DeleteButton.vue @@ -17,8 +17,8 @@ import Button from 'primevue/button' import { computed } from 'vue' import { useI18n } from 'vue-i18n' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' const { t } = useI18n() const commandStore = useCommandStore() diff --git a/src/components/graph/selectionToolbox/ExecuteButton.vue b/src/components/graph/selectionToolbox/ExecuteButton.vue index 39ca28d5e..a8054ae04 100644 --- a/src/components/graph/selectionToolbox/ExecuteButton.vue +++ b/src/components/graph/selectionToolbox/ExecuteButton.vue @@ -24,8 +24,8 @@ import { computed, ref } from 'vue' import { useI18n } from 'vue-i18n' import type { LGraphNode } from '@/lib/litegraph/src/litegraph' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' import { isLGraphNode } from '@/utils/litegraphUtil' const { t } = useI18n() diff --git a/src/components/graph/selectionToolbox/HelpButton.vue b/src/components/graph/selectionToolbox/HelpButton.vue index e77701bd4..75f6053cb 100644 --- a/src/components/graph/selectionToolbox/HelpButton.vue +++ b/src/components/graph/selectionToolbox/HelpButton.vue @@ -18,7 +18,7 @@ import Button from 'primevue/button' import { computed } from 'vue' import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore' import { useNodeDefStore } from '@/stores/nodeDefStore' import { useNodeHelpStore } from '@/stores/workspace/nodeHelpStore' diff --git a/src/components/graph/selectionToolbox/Load3DViewerButton.vue b/src/components/graph/selectionToolbox/Load3DViewerButton.vue index b207e5018..269f7a54d 100644 --- a/src/components/graph/selectionToolbox/Load3DViewerButton.vue +++ b/src/components/graph/selectionToolbox/Load3DViewerButton.vue @@ -17,8 +17,8 @@ import Button from 'primevue/button' import { computed } from 'vue' import { t } from '@/i18n' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' import { useSettingStore } from '@/stores/settingStore' import { isLGraphNode, isLoad3dNode } from '@/utils/litegraphUtil' diff --git a/src/components/graph/selectionToolbox/MaskEditorButton.vue b/src/components/graph/selectionToolbox/MaskEditorButton.vue index e0635ea98..5c7d9a21e 100644 --- a/src/components/graph/selectionToolbox/MaskEditorButton.vue +++ b/src/components/graph/selectionToolbox/MaskEditorButton.vue @@ -17,8 +17,8 @@ import Button from 'primevue/button' import { computed } from 'vue' import { t } from '@/i18n' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' import { isImageNode, isLGraphNode } from '@/utils/litegraphUtil' const commandStore = useCommandStore() diff --git a/src/components/graph/selectionToolbox/PinButton.vue b/src/components/graph/selectionToolbox/PinButton.vue index 86598339b..cf2fd85e3 100644 --- a/src/components/graph/selectionToolbox/PinButton.vue +++ b/src/components/graph/selectionToolbox/PinButton.vue @@ -16,8 +16,8 @@ import Button from 'primevue/button' import { useI18n } from 'vue-i18n' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useCommandStore } from '@/stores/commandStore' -import { useCanvasStore } from '@/stores/graphStore' const { t } = useI18n() const commandStore = useCommandStore() diff --git a/src/components/graph/widgets/DomWidget.vue b/src/components/graph/widgets/DomWidget.vue index 11cfafa1c..e3dec81ce 100644 --- a/src/components/graph/widgets/DomWidget.vue +++ b/src/components/graph/widgets/DomWidget.vue @@ -23,9 +23,9 @@ import { CSSProperties, computed, nextTick, onMounted, ref, watch } from 'vue' import { useAbsolutePosition } from '@/composables/element/useAbsolutePosition' import { useDomClipping } from '@/composables/element/useDomClipping' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { isComponentWidget, isDOMWidget } from '@/scripts/domWidget' import { DomWidgetState } from '@/stores/domWidgetStore' -import { useCanvasStore } from '@/stores/graphStore' import { useSettingStore } from '@/stores/settingStore' const { widgetState } = defineProps<{ diff --git a/src/components/searchbox/NodeSearchBoxPopover.vue b/src/components/searchbox/NodeSearchBoxPopover.vue index a109c7566..3b335a83e 100644 --- a/src/components/searchbox/NodeSearchBoxPopover.vue +++ b/src/components/searchbox/NodeSearchBoxPopover.vue @@ -45,8 +45,8 @@ import { LiteGraphCanvasEvent } from '@/lib/litegraph/src/litegraph' import type { CanvasPointerEvent } from '@/lib/litegraph/src/types/events' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useLitegraphService } from '@/services/litegraphService' -import { useCanvasStore } from '@/stores/graphStore' import { ComfyNodeDefImpl, useNodeDefStore } from '@/stores/nodeDefStore' import { useSettingStore } from '@/stores/settingStore' import { useWorkflowStore } from '@/stores/workflowStore' diff --git a/src/composables/canvas/useCanvasTransformSync.ts b/src/composables/canvas/useCanvasTransformSync.ts index fe0d2b457..f2fc480cb 100644 --- a/src/composables/canvas/useCanvasTransformSync.ts +++ b/src/composables/canvas/useCanvasTransformSync.ts @@ -1,7 +1,7 @@ import { onUnmounted, ref } from 'vue' import { LGraphCanvas } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' interface CanvasTransformSyncOptions { /** diff --git a/src/composables/canvas/useSelectedLiteGraphItems.ts b/src/composables/canvas/useSelectedLiteGraphItems.ts index 0400bc833..9ea3c8e1a 100644 --- a/src/composables/canvas/useSelectedLiteGraphItems.ts +++ b/src/composables/canvas/useSelectedLiteGraphItems.ts @@ -4,8 +4,8 @@ import { Positionable, Reroute } from '@/lib/litegraph/src/litegraph' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { app } from '@/scripts/app' -import { useCanvasStore } from '@/stores/graphStore' import { collectFromNodes, traverseNodesDepthFirst diff --git a/src/composables/canvas/useSelectionToolboxPosition.ts b/src/composables/canvas/useSelectionToolboxPosition.ts index 8e327b05f..3c64f34f0 100644 --- a/src/composables/canvas/useSelectionToolboxPosition.ts +++ b/src/composables/canvas/useSelectionToolboxPosition.ts @@ -4,7 +4,7 @@ import type { Ref } from 'vue' import { useCanvasTransformSync } from '@/composables/canvas/useCanvasTransformSync' import { useSelectedLiteGraphItems } from '@/composables/canvas/useSelectedLiteGraphItems' import { createBounds } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' /** * Manages the position of the selection toolbox independently. diff --git a/src/composables/element/useAbsolutePosition.ts b/src/composables/element/useAbsolutePosition.ts index 4eb0f4d82..66888656f 100644 --- a/src/composables/element/useAbsolutePosition.ts +++ b/src/composables/element/useAbsolutePosition.ts @@ -2,7 +2,7 @@ import { CSSProperties, ref, watch } from 'vue' import { useCanvasPositionConversion } from '@/composables/element/useCanvasPositionConversion' import type { Size, Vector2 } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useSettingStore } from '@/stores/settingStore' export interface PositionConfig { diff --git a/src/composables/graph/useCanvasInteractions.ts b/src/composables/graph/useCanvasInteractions.ts index 79edb1fb3..83b36cd2a 100644 --- a/src/composables/graph/useCanvasInteractions.ts +++ b/src/composables/graph/useCanvasInteractions.ts @@ -1,7 +1,7 @@ import { computed } from 'vue' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { app } from '@/scripts/app' -import { useCanvasStore } from '@/stores/graphStore' import { useSettingStore } from '@/stores/settingStore' /** diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index a5079c453..88b32e919 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -6,11 +6,11 @@ import { nextTick, reactive, readonly } from 'vue' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' import { LayoutSource } from '@/renderer/core/layout/types' +import { type Bounds, QuadTree } from '@/renderer/core/spatial/QuadTree' import type { WidgetValue } from '@/types/simplifiedWidget' import type { SpatialIndexDebugInfo } from '@/types/spatialIndex' import type { LGraph, LGraphNode } from '../../lib/litegraph/src/litegraph' -import { type Bounds, QuadTree } from '../../utils/spatial/QuadTree' export interface NodeState { visible: boolean diff --git a/src/composables/useCopy.ts b/src/composables/useCopy.ts index 15f6183de..d24e7603c 100644 --- a/src/composables/useCopy.ts +++ b/src/composables/useCopy.ts @@ -1,6 +1,6 @@ import { useEventListener } from '@vueuse/core' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' /** * Adds a handler on copy that serializes selected nodes to JSON diff --git a/src/composables/useCoreCommands.ts b/src/composables/useCoreCommands.ts index 61ed889bb..3e6b3644e 100644 --- a/src/composables/useCoreCommands.ts +++ b/src/composables/useCoreCommands.ts @@ -14,6 +14,10 @@ import { SubgraphNode } from '@/lib/litegraph/src/litegraph' import { Point } from '@/lib/litegraph/src/litegraph' +import { + useCanvasStore, + useTitleEditorStore +} from '@/renderer/core/canvas/canvasStore' import { api } from '@/scripts/api' import { app } from '@/scripts/app' import { useDialogService } from '@/services/dialogService' @@ -22,7 +26,6 @@ import { useWorkflowService } from '@/services/workflowService' import type { ComfyCommand } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore' import { useExecutionStore } from '@/stores/executionStore' -import { useCanvasStore, useTitleEditorStore } from '@/stores/graphStore' import { useHelpCenterStore } from '@/stores/helpCenterStore' import { useNodeOutputStore } from '@/stores/imagePreviewStore' import { diff --git a/src/composables/useLitegraphSettings.ts b/src/composables/useLitegraphSettings.ts index fd340bb09..56d4d74b3 100644 --- a/src/composables/useLitegraphSettings.ts +++ b/src/composables/useLitegraphSettings.ts @@ -5,7 +5,7 @@ import { LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useSettingStore } from '@/stores/settingStore' /** diff --git a/src/composables/usePaste.ts b/src/composables/usePaste.ts index 2a4d2d8ad..2a57ebd9f 100644 --- a/src/composables/usePaste.ts +++ b/src/composables/usePaste.ts @@ -2,9 +2,9 @@ import { useEventListener } from '@vueuse/core' import { LiteGraph } from '@/lib/litegraph/src/litegraph' import type { LGraphNode } from '@/lib/litegraph/src/litegraph' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { ComfyWorkflowJSON } from '@/schemas/comfyWorkflowSchema' import { app } from '@/scripts/app' -import { useCanvasStore } from '@/stores/graphStore' import { useWorkspaceStore } from '@/stores/workspaceStore' import { isAudioNode, isImageNode, isVideoNode } from '@/utils/litegraphUtil' diff --git a/src/composables/useRefreshableSelection.ts b/src/composables/useRefreshableSelection.ts index bf2a6660f..8e1db9fc5 100644 --- a/src/composables/useRefreshableSelection.ts +++ b/src/composables/useRefreshableSelection.ts @@ -1,7 +1,7 @@ import { computed, ref, watchEffect } from 'vue' import type { LGraphNode } from '@/lib/litegraph/src/litegraph' -import { useCanvasStore } from '@/stores/graphStore' +import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { isLGraphNode } from '@/utils/litegraphUtil' interface RefreshableItem { diff --git a/src/stores/graphStore.ts b/src/renderer/core/canvas/canvasStore.ts similarity index 100% rename from src/stores/graphStore.ts rename to src/renderer/core/canvas/canvasStore.ts diff --git a/src/components/graph/TransformPane.spec.ts b/src/renderer/core/layout/__tests__/TransformPane.spec.ts similarity index 98% rename from src/components/graph/TransformPane.spec.ts rename to src/renderer/core/layout/__tests__/TransformPane.spec.ts index acfa172ee..f6fe7126c 100644 --- a/src/components/graph/TransformPane.spec.ts +++ b/src/renderer/core/layout/__tests__/TransformPane.spec.ts @@ -2,7 +2,7 @@ import { mount } from '@vue/test-utils' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick, ref } from 'vue' -import TransformPane from './TransformPane.vue' +import TransformPane from '../TransformPane.vue' // Mock the transform state composable const mockTransformState = { @@ -17,7 +17,7 @@ const mockTransformState = { isNodeInViewport: vi.fn() } -vi.mock('@/composables/element/useTransformState', () => ({ +vi.mock('@/renderer/core/spatial/useTransformState', () => ({ useTransformState: () => mockTransformState })) diff --git a/src/components/graph/TransformPane.vue b/src/renderer/core/layout/transform/TransformPane.vue similarity index 87% rename from src/components/graph/TransformPane.vue rename to src/renderer/core/layout/transform/TransformPane.vue index 266dd0569..0f88b177d 100644 --- a/src/components/graph/TransformPane.vue +++ b/src/renderer/core/layout/transform/TransformPane.vue @@ -13,10 +13,10 @@