From e3bb29ceb8174b8bbca9e48ec7d42cd540f40efa Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Mon, 15 Sep 2025 02:58:35 -0700 Subject: [PATCH] [refactor] Move thumbnail functionality to renderer/core domain (#5586) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move thumbnail functionality from src/renderer/thumbnail/ to src/renderer/core/thumbnail/ to align with domain-driven design architecture. Thumbnail generation is core rendering infrastructure and belongs alongside other core renderer utilities. Changes: - Move useWorkflowThumbnail.ts and graphThumbnailRenderer.ts to renderer/core/thumbnail/ - Update all import paths in consuming files - Fix relative imports within moved files 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude --- src/components/topbar/WorkflowTab.vue | 2 +- src/platform/workflow/core/services/workflowService.ts | 2 +- src/platform/workflow/management/stores/workflowStore.ts | 2 +- src/renderer/{ => core}/thumbnail/graphThumbnailRenderer.ts | 2 +- src/renderer/{ => core}/thumbnail/useWorkflowThumbnail.ts | 3 ++- .../thumbnail/composables/useWorkflowThumbnail.spec.ts | 6 +++--- 6 files changed, 9 insertions(+), 8 deletions(-) rename src/renderer/{ => core}/thumbnail/graphThumbnailRenderer.ts (94%) rename src/renderer/{ => core}/thumbnail/useWorkflowThumbnail.ts (96%) diff --git a/src/components/topbar/WorkflowTab.vue b/src/components/topbar/WorkflowTab.vue index eb74ac8f0..80761f4d3 100644 --- a/src/components/topbar/WorkflowTab.vue +++ b/src/components/topbar/WorkflowTab.vue @@ -43,7 +43,7 @@ import { import { useWorkflowService } from '@/platform/workflow/core/services/workflowService' import { ComfyWorkflow } from '@/platform/workflow/management/stores/workflowStore' import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' -import { useWorkflowThumbnail } from '@/renderer/thumbnail/useWorkflowThumbnail' +import { useWorkflowThumbnail } from '@/renderer/core/thumbnail/useWorkflowThumbnail' import { useSettingStore } from '@/stores/settingStore' import { useWorkspaceStore } from '@/stores/workspaceStore' diff --git a/src/platform/workflow/core/services/workflowService.ts b/src/platform/workflow/core/services/workflowService.ts index 6a0f1f640..ef7d502c6 100644 --- a/src/platform/workflow/core/services/workflowService.ts +++ b/src/platform/workflow/core/services/workflowService.ts @@ -8,7 +8,7 @@ import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' import { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' -import { useWorkflowThumbnail } from '@/renderer/thumbnail/useWorkflowThumbnail' +import { useWorkflowThumbnail } from '@/renderer/core/thumbnail/useWorkflowThumbnail' import { app } from '@/scripts/app' import { blankGraph, defaultGraph } from '@/scripts/defaultGraph' import { downloadBlob } from '@/scripts/utils' diff --git a/src/platform/workflow/management/stores/workflowStore.ts b/src/platform/workflow/management/stores/workflowStore.ts index 644109d83..254698b66 100644 --- a/src/platform/workflow/management/stores/workflowStore.ts +++ b/src/platform/workflow/management/stores/workflowStore.ts @@ -6,7 +6,7 @@ import { t } from '@/i18n' import type { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph' import { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' import type { NodeId } from '@/platform/workflow/validation/schemas/workflowSchema' -import { useWorkflowThumbnail } from '@/renderer/thumbnail/useWorkflowThumbnail' +import { useWorkflowThumbnail } from '@/renderer/core/thumbnail/useWorkflowThumbnail' import { api } from '@/scripts/api' import { app as comfyApp } from '@/scripts/app' import { ChangeTracker } from '@/scripts/changeTracker' diff --git a/src/renderer/thumbnail/graphThumbnailRenderer.ts b/src/renderer/core/thumbnail/graphThumbnailRenderer.ts similarity index 94% rename from src/renderer/thumbnail/graphThumbnailRenderer.ts rename to src/renderer/core/thumbnail/graphThumbnailRenderer.ts index b96113077..815006760 100644 --- a/src/renderer/thumbnail/graphThumbnailRenderer.ts +++ b/src/renderer/core/thumbnail/graphThumbnailRenderer.ts @@ -6,7 +6,7 @@ import { calculateNodeBounds } from '@/renderer/core/spatial/boundsCalculator' -import { renderMinimapToCanvas } from '../extensions/minimap/minimapCanvasRenderer' +import { renderMinimapToCanvas } from '../../extensions/minimap/minimapCanvasRenderer' /** * Create a thumbnail of the current canvas's active graph. diff --git a/src/renderer/thumbnail/useWorkflowThumbnail.ts b/src/renderer/core/thumbnail/useWorkflowThumbnail.ts similarity index 96% rename from src/renderer/thumbnail/useWorkflowThumbnail.ts rename to src/renderer/core/thumbnail/useWorkflowThumbnail.ts index 3ca2f4411..7d21aaeb8 100644 --- a/src/renderer/thumbnail/useWorkflowThumbnail.ts +++ b/src/renderer/core/thumbnail/useWorkflowThumbnail.ts @@ -1,7 +1,8 @@ import { ref } from 'vue' import { ComfyWorkflow } from '@/platform/workflow/management/stores/workflowStore' -import { createGraphThumbnail } from '@/renderer/thumbnail/graphThumbnailRenderer' + +import { createGraphThumbnail } from './graphThumbnailRenderer' // Store thumbnails for each workflow const workflowThumbnails = ref>(new Map()) diff --git a/tests-ui/tests/renderer/thumbnail/composables/useWorkflowThumbnail.spec.ts b/tests-ui/tests/renderer/thumbnail/composables/useWorkflowThumbnail.spec.ts index 8ecf7a424..e2f0d465f 100644 --- a/tests-ui/tests/renderer/thumbnail/composables/useWorkflowThumbnail.spec.ts +++ b/tests-ui/tests/renderer/thumbnail/composables/useWorkflowThumbnail.spec.ts @@ -6,7 +6,7 @@ import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' -vi.mock('@/renderer/thumbnail/graphThumbnailRenderer', () => ({ +vi.mock('@/renderer/core/thumbnail/graphThumbnailRenderer', () => ({ createGraphThumbnail: vi.fn() })) @@ -22,10 +22,10 @@ vi.mock('@/scripts/api', () => ({ })) const { useWorkflowThumbnail } = await import( - '@/renderer/thumbnail/useWorkflowThumbnail' + '@/renderer/core/thumbnail/useWorkflowThumbnail' ) const { createGraphThumbnail } = await import( - '@/renderer/thumbnail/graphThumbnailRenderer' + '@/renderer/core/thumbnail/graphThumbnailRenderer' ) const { api } = await import('@/scripts/api')