From 44733f010d89e668fed2a0e8488ea72b951004eb Mon Sep 17 00:00:00 2001 From: Jin Yi Date: Fri, 20 Feb 2026 13:58:59 +0900 Subject: [PATCH] [refactor] Unify small modal dialog styles with showSmallLayoutDialog (#8834) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Extract a shared `showSmallLayoutDialog` utility and move dialog-specific logic into composables, unifying the duplicated `pt` configurations across small modal dialogs. ## Changes - **`showSmallLayoutDialog`**: Added to `dialogService.ts` with a single unified `pt` config for all small modal dialogs (missing nodes, missing models, import failed, node conflict) - **Composables**: Extracted 4 dialog functions from `dialogService` into dedicated composables following the `useSettingsDialog` / `useModelSelectorDialog` pattern: - `useMissingNodesDialog` - `useMissingModelsDialog` - `useImportFailedNodeDialog` - `useNodeConflictDialog` - Each composable uses direct imports, synchronous `show()`, `hide()`, and a `DIALOG_KEY` constant - Updated all call sites (`app.ts`, `useHelpCenter`, `PackEnableToggle`, `PackInstallButton`, `useImportFailedDetection`) ## Review Focus - Unified `pt` config removes minor style variations between dialogs — intentional design unification ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8834-refactor-Unify-small-modal-dialog-styles-with-showSmallLayoutDialog-3056d73d365081b6963beffc0e5943bf) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude Opus 4.6 Co-authored-by: github-actions --- .storybook/main.ts | 3 +- ...ts-when-saved-offscreen-chromium-linux.png | Bin 74871 -> 75510 bytes src/composables/useHelpCenter.ts | 4 +- src/composables/useMissingModelsDialog.ts | 26 +++ src/composables/useMissingNodesDialog.ts | 30 +++ .../core/services/workflowService.test.ts | 49 ++--- .../workflow/core/services/workflowService.ts | 8 +- src/scripts/app.ts | 3 +- src/services/dialogService.ts | 172 +----------------- .../manager/button/PackEnableToggle.vue | 4 +- .../manager/button/PackInstallButton.vue | 4 +- .../useImportFailedDetection.test.ts | 105 ++++------- .../composables/useImportFailedDetection.ts | 6 +- .../composables/useImportFailedNodeDialog.ts | 43 +++++ .../composables/useNodeConflictDialog.ts | 54 ++++++ 15 files changed, 244 insertions(+), 267 deletions(-) create mode 100644 src/composables/useMissingModelsDialog.ts create mode 100644 src/composables/useMissingNodesDialog.ts create mode 100644 src/workbench/extensions/manager/composables/useImportFailedNodeDialog.ts create mode 100644 src/workbench/extensions/manager/composables/useNodeConflictDialog.ts diff --git a/.storybook/main.ts b/.storybook/main.ts index 0c576b0bde..68e22b2831 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -100,8 +100,7 @@ const config: StorybookConfig = { rolldownOptions: { treeshake: false, output: { - keepNames: true, - strictExecutionOrder: true + keepNames: true }, onwarn: (warning, warn) => { // Suppress specific warnings diff --git a/browser_tests/tests/viewport.spec.ts-snapshots/viewport-fits-when-saved-offscreen-chromium-linux.png b/browser_tests/tests/viewport.spec.ts-snapshots/viewport-fits-when-saved-offscreen-chromium-linux.png index 050c9d7086ab943366f54df88b784a47f603b305..4fa4bc57d946c9d2d8761587d9b6dc965fd1dd52 100644 GIT binary patch literal 75510 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

5S`Ldii3>p(_};R6ke*V&`+=Jv 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%0Db4ws<_?il$&ryE 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≫ZQ43ttp7TsbZk<^7+F}_p{&*w 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 { + showSmallLayoutDialog({ + key: DIALOG_KEY, + component: MissingModelsWarning, + props + }) + } + + return { show, hide } +} diff --git a/src/composables/useMissingNodesDialog.ts b/src/composables/useMissingNodesDialog.ts new file mode 100644 index 0000000000..83b7f156fe --- /dev/null +++ b/src/composables/useMissingNodesDialog.ts @@ -0,0 +1,30 @@ +import type { ComponentAttrs } from 'vue-component-type-helpers' + +import MissingNodesContent from '@/components/dialog/content/MissingNodesContent.vue' +import MissingNodesFooter from '@/components/dialog/content/MissingNodesFooter.vue' +import MissingNodesHeader from '@/components/dialog/content/MissingNodesHeader.vue' +import { useDialogService } from '@/services/dialogService' +import { useDialogStore } from '@/stores/dialogStore' + +const DIALOG_KEY = 'global-missing-nodes' + +export function useMissingNodesDialog() { + const { showSmallLayoutDialog } = useDialogService() + const dialogStore = useDialogStore() + + function hide() { + dialogStore.closeDialog({ key: DIALOG_KEY }) + } + + function show(props: ComponentAttrs) { + showSmallLayoutDialog({ + key: DIALOG_KEY, + headerComponent: MissingNodesHeader, + footerComponent: MissingNodesFooter, + component: MissingNodesContent, + props + }) + } + + return { show, hide } +} diff --git a/src/platform/workflow/core/services/workflowService.test.ts b/src/platform/workflow/core/services/workflowService.test.ts index c597c80a53..f27ff7683e 100644 --- a/src/platform/workflow/core/services/workflowService.test.ts +++ b/src/platform/workflow/core/services/workflowService.test.ts @@ -9,16 +9,21 @@ import { useWorkflowStore } from '@/platform/workflow/management/stores/workflow import { useWorkflowService } from '@/platform/workflow/core/services/workflowService' import { app } from '@/scripts/app' -const { mockShowLoadWorkflowWarning, mockShowMissingModelsWarning } = - vi.hoisted(() => ({ - mockShowLoadWorkflowWarning: vi.fn(), - mockShowMissingModelsWarning: vi.fn() - })) +const { mockShowMissingNodes, mockShowMissingModels } = vi.hoisted(() => ({ + mockShowMissingNodes: vi.fn(), + mockShowMissingModels: vi.fn() +})) + +vi.mock('@/composables/useMissingNodesDialog', () => ({ + useMissingNodesDialog: () => ({ show: mockShowMissingNodes, hide: vi.fn() }) +})) + +vi.mock('@/composables/useMissingModelsDialog', () => ({ + useMissingModelsDialog: () => ({ show: mockShowMissingModels, hide: vi.fn() }) +})) vi.mock('@/services/dialogService', () => ({ useDialogService: () => ({ - showLoadWorkflowWarning: mockShowLoadWorkflowWarning, - showMissingModelsWarning: mockShowMissingModelsWarning, prompt: vi.fn(), confirm: vi.fn() }) @@ -114,8 +119,8 @@ describe('useWorkflowService', () => { const workflow = createWorkflow(null) useWorkflowService().showPendingWarnings(workflow) - expect(mockShowLoadWorkflowWarning).not.toHaveBeenCalled() - expect(mockShowMissingModelsWarning).not.toHaveBeenCalled() + expect(mockShowMissingNodes).not.toHaveBeenCalled() + expect(mockShowMissingModels).not.toHaveBeenCalled() }) it('should show missing nodes dialog and clear warnings', () => { @@ -124,7 +129,7 @@ describe('useWorkflowService', () => { useWorkflowService().showPendingWarnings(workflow) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledWith({ + expect(mockShowMissingNodes).toHaveBeenCalledWith({ missingNodeTypes }) expect(workflow.pendingWarnings).toBeNull() @@ -135,7 +140,7 @@ describe('useWorkflowService', () => { useWorkflowService().showPendingWarnings(workflow) - expect(mockShowMissingModelsWarning).toHaveBeenCalledWith(MISSING_MODELS) + expect(mockShowMissingModels).toHaveBeenCalledWith(MISSING_MODELS) expect(workflow.pendingWarnings).toBeNull() }) @@ -149,8 +154,8 @@ describe('useWorkflowService', () => { useWorkflowService().showPendingWarnings(workflow) - expect(mockShowLoadWorkflowWarning).not.toHaveBeenCalled() - expect(mockShowMissingModelsWarning).not.toHaveBeenCalled() + expect(mockShowMissingNodes).not.toHaveBeenCalled() + expect(mockShowMissingModels).not.toHaveBeenCalled() expect(workflow.pendingWarnings).toBeNull() }) @@ -163,7 +168,7 @@ describe('useWorkflowService', () => { service.showPendingWarnings(workflow) service.showPendingWarnings(workflow) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledTimes(1) + expect(mockShowMissingNodes).toHaveBeenCalledTimes(1) }) }) @@ -188,7 +193,7 @@ describe('useWorkflowService', () => { { loadable: true } ) - expect(mockShowLoadWorkflowWarning).not.toHaveBeenCalled() + expect(mockShowMissingNodes).not.toHaveBeenCalled() await useWorkflowService().openWorkflow(workflow) @@ -199,7 +204,7 @@ describe('useWorkflowService', () => { workflow, expect.objectContaining({ deferWarnings: true }) ) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledWith({ + expect(mockShowMissingNodes).toHaveBeenCalledWith({ missingNodeTypes: ['CustomNode1'] }) expect(workflow.pendingWarnings).toBeNull() @@ -218,16 +223,16 @@ describe('useWorkflowService', () => { const service = useWorkflowService() await service.openWorkflow(workflow1) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledTimes(1) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledWith({ + expect(mockShowMissingNodes).toHaveBeenCalledTimes(1) + expect(mockShowMissingNodes).toHaveBeenCalledWith({ missingNodeTypes: ['MissingNodeA'] }) expect(workflow1.pendingWarnings).toBeNull() expect(workflow2.pendingWarnings).not.toBeNull() await service.openWorkflow(workflow2) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledTimes(2) - expect(mockShowLoadWorkflowWarning).toHaveBeenLastCalledWith({ + expect(mockShowMissingNodes).toHaveBeenCalledTimes(2) + expect(mockShowMissingNodes).toHaveBeenLastCalledWith({ missingNodeTypes: ['MissingNodeB'] }) expect(workflow2.pendingWarnings).toBeNull() @@ -242,10 +247,10 @@ describe('useWorkflowService', () => { const service = useWorkflowService() await service.openWorkflow(workflow, { force: true }) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledTimes(1) + expect(mockShowMissingNodes).toHaveBeenCalledTimes(1) await service.openWorkflow(workflow, { force: true }) - expect(mockShowLoadWorkflowWarning).toHaveBeenCalledTimes(1) + expect(mockShowMissingNodes).toHaveBeenCalledTimes(1) }) }) }) diff --git a/src/platform/workflow/core/services/workflowService.ts b/src/platform/workflow/core/services/workflowService.ts index 14d15f05af..96f1c02741 100644 --- a/src/platform/workflow/core/services/workflowService.ts +++ b/src/platform/workflow/core/services/workflowService.ts @@ -17,6 +17,8 @@ import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { useWorkflowThumbnail } from '@/renderer/core/thumbnail/useWorkflowThumbnail' import { app } from '@/scripts/app' import { blankGraph, defaultGraph } from '@/scripts/defaultGraph' +import { useMissingModelsDialog } from '@/composables/useMissingModelsDialog' +import { useMissingNodesDialog } from '@/composables/useMissingNodesDialog' import { useDialogService } from '@/services/dialogService' import { useDomWidgetStore } from '@/stores/domWidgetStore' import { useWorkspaceStore } from '@/stores/workspaceStore' @@ -27,6 +29,8 @@ export const useWorkflowService = () => { const workflowStore = useWorkflowStore() const toastStore = useToastStore() const dialogService = useDialogService() + const missingModelsDialog = useMissingModelsDialog() + const missingNodesDialog = useMissingNodesDialog() const workflowThumbnail = useWorkflowThumbnail() const domWidgetStore = useDomWidgetStore() const workflowDraftStore = useWorkflowDraftStore() @@ -455,13 +459,13 @@ export const useWorkflowService = () => { missingNodeTypes?.length && settingStore.get('Comfy.Workflow.ShowMissingNodesWarning') ) { - void dialogService.showLoadWorkflowWarning({ missingNodeTypes }) + missingNodesDialog.show({ missingNodeTypes }) } if ( missingModels && settingStore.get('Comfy.Workflow.ShowMissingModelsWarning') ) { - void dialogService.showMissingModelsWarning(missingModels) + missingModelsDialog.show(missingModels) } } diff --git a/src/scripts/app.ts b/src/scripts/app.ts index a6fe39fdca..febf53ca39 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -52,6 +52,7 @@ import { } from '@/scripts/domWidget' import { useDialogService } from '@/services/dialogService' import { useBillingContext } from '@/composables/billing/useBillingContext' +import { useMissingNodesDialog } from '@/composables/useMissingNodesDialog' import { useExtensionService } from '@/services/extensionService' import { useLitegraphService } from '@/services/litegraphService' import { useSubgraphService } from '@/services/subgraphService' @@ -1068,7 +1069,7 @@ export class ComfyApp { private showMissingNodesError(missingNodeTypes: MissingNodeType[]) { if (useSettingStore().get('Comfy.Workflow.ShowMissingNodesWarning')) { - useDialogService().showLoadWorkflowWarning({ missingNodeTypes }) + useMissingNodesDialog().show({ missingNodeTypes }) } } diff --git a/src/services/dialogService.ts b/src/services/dialogService.ts index 0982892cf3..eb6dc2e7a2 100644 --- a/src/services/dialogService.ts +++ b/src/services/dialogService.ts @@ -16,22 +16,9 @@ import type { ShowDialogOptions } from '@/stores/dialogStore' -import type { ConflictDetectionResult } from '@/workbench/extensions/manager/types/conflictDetectionTypes' import type { ComponentAttrs } from 'vue-component-type-helpers' -// Type-only imports for ComponentAttrs inference (no runtime cost) -import type MissingNodesContent from '@/components/dialog/content/MissingNodesContent.vue' -import type MissingModelsWarning from '@/components/dialog/content/MissingModelsWarning.vue' - // Lazy loaders for dialogs - components are loaded on first use -const lazyMissingNodesContent = () => - import('@/components/dialog/content/MissingNodesContent.vue') -const lazyMissingNodesHeader = () => - import('@/components/dialog/content/MissingNodesHeader.vue') -const lazyMissingNodesFooter = () => - import('@/components/dialog/content/MissingNodesFooter.vue') -const lazyMissingModelsWarning = () => - import('@/components/dialog/content/MissingModelsWarning.vue') const lazyApiNodesSignInContent = () => import('@/components/dialog/content/ApiNodesSignInContent.vue') const lazySignInContent = () => @@ -40,18 +27,6 @@ const lazyUpdatePasswordContent = () => import('@/components/dialog/content/UpdatePasswordContent.vue') const lazyComfyOrgHeader = () => import('@/components/dialog/header/ComfyOrgHeader.vue') -const lazyImportFailedNodeContent = () => - import('@/workbench/extensions/manager/components/manager/ImportFailedNodeContent.vue') -const lazyImportFailedNodeHeader = () => - import('@/workbench/extensions/manager/components/manager/ImportFailedNodeHeader.vue') -const lazyImportFailedNodeFooter = () => - import('@/workbench/extensions/manager/components/manager/ImportFailedNodeFooter.vue') -const lazyNodeConflictDialogContent = () => - import('@/workbench/extensions/manager/components/manager/NodeConflictDialogContent.vue') -const lazyNodeConflictHeader = () => - import('@/workbench/extensions/manager/components/manager/NodeConflictHeader.vue') -const lazyNodeConflictFooter = () => - import('@/workbench/extensions/manager/components/manager/NodeConflictFooter.vue') export type ConfirmationDialogType = | 'default' @@ -77,56 +52,6 @@ export interface ExecutionErrorDialogInput { export const useDialogService = () => { const dialogStore = useDialogStore() - async function showLoadWorkflowWarning( - props: ComponentAttrs - ) { - const [ - { default: MissingNodesContent }, - { default: MissingNodesHeader }, - { default: MissingNodesFooter } - ] = await Promise.all([ - lazyMissingNodesContent(), - lazyMissingNodesHeader(), - lazyMissingNodesFooter() - ]) - - dialogStore.showDialog({ - key: 'global-missing-nodes', - headerComponent: MissingNodesHeader, - footerComponent: MissingNodesFooter, - component: MissingNodesContent, - dialogComponentProps: { - closable: true, - pt: { - root: { class: 'bg-base-background border-border-default' }, - header: { class: '!p-0 !m-0' }, - content: { class: '!p-0 overflow-y-hidden' }, - footer: { class: '!p-0' }, - pcCloseButton: { - root: { - class: '!w-7 !h-7 !border-none !outline-none !p-2 !m-1.5' - } - } - } - }, - props, - footerProps: { - missingNodeTypes: props.missingNodeTypes - } - }) - } - - async function showMissingModelsWarning( - props: ComponentAttrs - ) { - const { default: MissingModelsWarning } = await lazyMissingModelsWarning() - dialogStore.showDialog({ - key: 'global-missing-models-warning', - component: MissingModelsWarning, - props - }) - } - function showExecutionErrorDialog(executionError: ExecutionErrorDialogInput) { const props: ComponentAttrs = { error: { @@ -440,29 +365,15 @@ export const useDialogService = () => { }) } - async function showImportFailedNodeDialog( - options: { - conflictedPackages?: ConflictDetectionResult[] - dialogComponentProps?: DialogComponentProps - } = {} + function showSmallLayoutDialog( + options: Omit & { + dialogComponentProps?: Omit + } ) { - const [ - { default: ImportFailedNodeHeader }, - { default: ImportFailedNodeFooter }, - { default: ImportFailedNodeContent } - ] = await Promise.all([ - lazyImportFailedNodeHeader(), - lazyImportFailedNodeFooter(), - lazyImportFailedNodeContent() - ]) - - const { dialogComponentProps, conflictedPackages } = options + const { dialogComponentProps: callerProps, ...rest } = options return dialogStore.showDialog({ - key: 'global-import-failed', - headerComponent: ImportFailedNodeHeader, - footerComponent: ImportFailedNodeFooter, - component: ImportFailedNodeContent, + ...rest, dialogComponentProps: { closable: true, pt: { @@ -476,71 +387,7 @@ export const useDialogService = () => { } } }, - ...dialogComponentProps - }, - props: { - conflictedPackages: conflictedPackages ?? [] - }, - footerProps: { - conflictedPackages: conflictedPackages ?? [] - } - }) - } - - async function showNodeConflictDialog( - options: { - showAfterWhatsNew?: boolean - conflictedPackages?: ConflictDetectionResult[] - dialogComponentProps?: DialogComponentProps - buttonText?: string - onButtonClick?: () => void - } = {} - ) { - const [ - { default: NodeConflictHeader }, - { default: NodeConflictFooter }, - { default: NodeConflictDialogContent } - ] = await Promise.all([ - lazyNodeConflictHeader(), - lazyNodeConflictFooter(), - lazyNodeConflictDialogContent() - ]) - - const { - dialogComponentProps, - buttonText, - onButtonClick, - showAfterWhatsNew, - conflictedPackages - } = options - - return dialogStore.showDialog({ - key: 'global-node-conflict', - headerComponent: NodeConflictHeader, - footerComponent: NodeConflictFooter, - component: NodeConflictDialogContent, - dialogComponentProps: { - closable: true, - pt: { - header: { class: '!p-0 !m-0' }, - content: { class: '!p-0 overflow-y-hidden' }, - footer: { class: '!p-0' }, - pcCloseButton: { - root: { - class: - '!w-7 !h-7 !border-none !outline-none !p-2 !m-1.5 bg-dialog-surface text-white' - } - } - }, - ...dialogComponentProps - }, - props: { - showAfterWhatsNew, - conflictedPackages - }, - footerProps: { - buttonText, - onButtonClick + ...callerProps } }) } @@ -715,8 +562,6 @@ export const useDialogService = () => { } return { - showLoadWorkflowWarning, - showMissingModelsWarning, showExecutionErrorDialog, showApiNodesSignInDialog, showSignInDialog, @@ -728,8 +573,7 @@ export const useDialogService = () => { showErrorDialog, confirm, showLayoutDialog, - showImportFailedNodeDialog, - showNodeConflictDialog, + showSmallLayoutDialog, showDeleteWorkspaceDialog, showCreateWorkspaceDialog, showLeaveWorkspaceDialog, diff --git a/src/workbench/extensions/manager/components/manager/button/PackEnableToggle.vue b/src/workbench/extensions/manager/components/manager/button/PackEnableToggle.vue index a43ec76fc0..91cb65f93d 100644 --- a/src/workbench/extensions/manager/components/manager/button/PackEnableToggle.vue +++ b/src/workbench/extensions/manager/components/manager/button/PackEnableToggle.vue @@ -36,11 +36,11 @@ import ToggleSwitch from 'primevue/toggleswitch' import { computed, ref } from 'vue' import { useI18n } from 'vue-i18n' -import { useDialogService } from '@/services/dialogService' import type { components } from '@/types/comfyRegistryTypes' import { useConflictAcknowledgment } from '@/workbench/extensions/manager/composables/useConflictAcknowledgment' import { useImportFailedDetection } from '@/workbench/extensions/manager/composables/useImportFailedDetection' import { useComfyManagerStore } from '@/workbench/extensions/manager/stores/comfyManagerStore' +import { useNodeConflictDialog } from '@/workbench/extensions/manager/composables/useNodeConflictDialog' import { useConflictDetectionStore } from '@/workbench/extensions/manager/stores/conflictDetectionStore' import type { components as ManagerComponents } from '@/workbench/extensions/manager/types/generatedManagerTypes' @@ -54,7 +54,7 @@ const { t } = useI18n() const { isPackEnabled, enablePack, disablePack, installedPacks } = useComfyManagerStore() const { getConflictsForPackageByID } = useConflictDetectionStore() -const { showNodeConflictDialog } = useDialogService() +const { show: showNodeConflictDialog } = useNodeConflictDialog() const { acknowledgmentState, markConflictsAsSeen } = useConflictAcknowledgment() const { showImportFailedDialog } = useImportFailedDetection(nodePack.id || '') diff --git a/src/workbench/extensions/manager/components/manager/button/PackInstallButton.vue b/src/workbench/extensions/manager/components/manager/button/PackInstallButton.vue index 0aeab79fe4..ba3f60fe5d 100644 --- a/src/workbench/extensions/manager/components/manager/button/PackInstallButton.vue +++ b/src/workbench/extensions/manager/components/manager/button/PackInstallButton.vue @@ -26,9 +26,9 @@ import { useI18n } from 'vue-i18n' import DotSpinner from '@/components/common/DotSpinner.vue' import Button from '@/components/ui/button/Button.vue' import type { ButtonVariants } from '@/components/ui/button/button.variants' -import { useDialogService } from '@/services/dialogService' import type { components } from '@/types/comfyRegistryTypes' import { useConflictDetection } from '@/workbench/extensions/manager/composables/useConflictDetection' +import { useNodeConflictDialog } from '@/workbench/extensions/manager/composables/useNodeConflictDialog' import { useComfyManagerStore } from '@/workbench/extensions/manager/stores/comfyManagerStore' import type { ConflictDetail, @@ -55,7 +55,7 @@ const { }>() const managerStore = useComfyManagerStore() -const { showNodeConflictDialog } = useDialogService() +const { show: showNodeConflictDialog } = useNodeConflictDialog() const { t } = useI18n() // Check if any of the packs are currently being installed diff --git a/src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts b/src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts index 83944f4f89..a89309d281 100644 --- a/src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts +++ b/src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts @@ -3,15 +3,30 @@ import { setActivePinia } from 'pinia' import { beforeEach, describe, expect, it, vi } from 'vitest' import { computed, ref } from 'vue' -import * as dialogService from '@/services/dialogService' import { useImportFailedDetection } from '@/workbench/extensions/manager/composables/useImportFailedDetection' -import * as comfyManagerStore from '@/workbench/extensions/manager/stores/comfyManagerStore' -import * as conflictDetectionStore from '@/workbench/extensions/manager/stores/conflictDetectionStore' -// Mock the stores and services -vi.mock('@/workbench/extensions/manager/stores/comfyManagerStore') -vi.mock('@/workbench/extensions/manager/stores/conflictDetectionStore') -vi.mock('@/services/dialogService') +const mockIsPackInstalled = vi.fn() +const mockGetConflictsForPackageByID = vi.fn() +const mockShow = vi.fn() + +vi.mock('@/workbench/extensions/manager/stores/comfyManagerStore', () => ({ + useComfyManagerStore: () => ({ + isPackInstalled: mockIsPackInstalled + }) +})) +vi.mock('@/workbench/extensions/manager/stores/conflictDetectionStore', () => ({ + useConflictDetectionStore: () => ({ + getConflictsForPackageByID: mockGetConflictsForPackageByID + }) +})) +vi.mock( + '@/workbench/extensions/manager/composables/useImportFailedNodeDialog', + () => ({ + useImportFailedNodeDialog: () => ({ + show: mockShow + }) + }) +) vi.mock('vue-i18n', async () => { const actual = await vi.importActual('vue-i18n') return { @@ -23,43 +38,13 @@ vi.mock('vue-i18n', async () => { }) describe('useImportFailedDetection', () => { - let mockComfyManagerStore: ReturnType< - typeof comfyManagerStore.useComfyManagerStore - > - let mockConflictDetectionStore: ReturnType< - typeof conflictDetectionStore.useConflictDetectionStore - > - let mockDialogService: ReturnType - beforeEach(() => { setActivePinia(createTestingPinia({ stubActions: false })) - - mockComfyManagerStore = { - isPackInstalled: vi.fn() - } as unknown as ReturnType - - mockConflictDetectionStore = { - getConflictsForPackageByID: vi.fn() - } as unknown as ReturnType< - typeof conflictDetectionStore.useConflictDetectionStore - > - - mockDialogService = { - showErrorDialog: vi.fn(), - showImportFailedNodeDialog: vi.fn() - } as unknown as ReturnType - - vi.mocked(comfyManagerStore.useComfyManagerStore).mockReturnValue( - mockComfyManagerStore - ) - vi.mocked(conflictDetectionStore.useConflictDetectionStore).mockReturnValue( - mockConflictDetectionStore - ) - vi.mocked(dialogService.useDialogService).mockReturnValue(mockDialogService) + vi.clearAllMocks() }) it('should return false for importFailed when package is not installed', () => { - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(false) + mockIsPackInstalled.mockReturnValue(false) const { importFailed } = useImportFailedDetection('test-package') @@ -67,10 +52,8 @@ describe('useImportFailedDetection', () => { }) it('should return false for importFailed when no conflicts exist', () => { - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(true) - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue(undefined) + mockIsPackInstalled.mockReturnValue(true) + mockGetConflictsForPackageByID.mockReturnValue(undefined) const { importFailed } = useImportFailedDetection('test-package') @@ -78,10 +61,8 @@ describe('useImportFailedDetection', () => { }) it('should return false for importFailed when conflicts exist but no import_failed type', () => { - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(true) - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue({ + mockIsPackInstalled.mockReturnValue(true) + mockGetConflictsForPackageByID.mockReturnValue({ package_id: 'test-package', package_name: 'Test Package', has_conflict: true, @@ -106,10 +87,8 @@ describe('useImportFailedDetection', () => { }) it('should return true for importFailed when import_failed conflicts exist', () => { - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(true) - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue({ + mockIsPackInstalled.mockReturnValue(true) + mockGetConflictsForPackageByID.mockReturnValue({ package_id: 'test-package', package_name: 'Test Package', has_conflict: true, @@ -135,10 +114,8 @@ describe('useImportFailedDetection', () => { it('should work with computed ref packageId', () => { const packageId = ref('test-package') - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(true) - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue({ + mockIsPackInstalled.mockReturnValue(true) + mockGetConflictsForPackageByID.mockReturnValue({ package_id: 'test-package', package_name: 'Test Package', has_conflict: true, @@ -160,9 +137,7 @@ describe('useImportFailedDetection', () => { // Change packageId packageId.value = 'another-package' - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue(undefined) + mockGetConflictsForPackageByID.mockReturnValue(undefined) expect(importFailed.value).toBe(false) }) @@ -181,10 +156,8 @@ describe('useImportFailedDetection', () => { } ] - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(true) - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue({ + mockIsPackInstalled.mockReturnValue(true) + mockGetConflictsForPackageByID.mockReturnValue({ package_id: 'test-package', package_name: 'Test Package', has_conflict: true, @@ -213,10 +186,8 @@ describe('useImportFailedDetection', () => { } ] - vi.mocked(mockComfyManagerStore.isPackInstalled).mockReturnValue(true) - vi.mocked( - mockConflictDetectionStore.getConflictsForPackageByID - ).mockReturnValue({ + mockIsPackInstalled.mockReturnValue(true) + mockGetConflictsForPackageByID.mockReturnValue({ package_id: 'test-package', package_name: 'Test Package', has_conflict: true, @@ -228,7 +199,7 @@ describe('useImportFailedDetection', () => { showImportFailedDialog() - expect(mockDialogService.showImportFailedNodeDialog).toHaveBeenCalledWith({ + expect(mockShow).toHaveBeenCalledWith({ conflictedPackages: expect.arrayContaining([ expect.objectContaining({ package_id: 'test-package', diff --git a/src/workbench/extensions/manager/composables/useImportFailedDetection.ts b/src/workbench/extensions/manager/composables/useImportFailedDetection.ts index d125255c8e..55da784e52 100644 --- a/src/workbench/extensions/manager/composables/useImportFailedDetection.ts +++ b/src/workbench/extensions/manager/composables/useImportFailedDetection.ts @@ -1,7 +1,7 @@ import { computed, unref } from 'vue' import type { ComputedRef } from 'vue' -import { useDialogService } from '@/services/dialogService' +import { useImportFailedNodeDialog } from '@/workbench/extensions/manager/composables/useImportFailedNodeDialog' import { useComfyManagerStore } from '@/workbench/extensions/manager/stores/comfyManagerStore' import { useConflictDetectionStore } from '@/workbench/extensions/manager/stores/conflictDetectionStore' import type { @@ -26,14 +26,14 @@ function extractImportFailedConflicts(conflicts?: ConflictDetail[] | null) { * Creating import failed dialog */ function createImportFailedDialog() { - const { showImportFailedNodeDialog } = useDialogService() + const { show } = useImportFailedNodeDialog() return ( conflictedPackages: ConflictDetectionResult[] | null, onClose?: () => void ) => { if (conflictedPackages && conflictedPackages.length > 0) { - void showImportFailedNodeDialog({ + void show({ conflictedPackages, dialogComponentProps: { onClose diff --git a/src/workbench/extensions/manager/composables/useImportFailedNodeDialog.ts b/src/workbench/extensions/manager/composables/useImportFailedNodeDialog.ts new file mode 100644 index 0000000000..35e56ed199 --- /dev/null +++ b/src/workbench/extensions/manager/composables/useImportFailedNodeDialog.ts @@ -0,0 +1,43 @@ +import { useDialogService } from '@/services/dialogService' +import type { DialogComponentProps } from '@/stores/dialogStore' +import { useDialogStore } from '@/stores/dialogStore' +import ImportFailedNodeContent from '@/workbench/extensions/manager/components/manager/ImportFailedNodeContent.vue' +import ImportFailedNodeFooter from '@/workbench/extensions/manager/components/manager/ImportFailedNodeFooter.vue' +import ImportFailedNodeHeader from '@/workbench/extensions/manager/components/manager/ImportFailedNodeHeader.vue' +import type { ConflictDetectionResult } from '@/workbench/extensions/manager/types/conflictDetectionTypes' + +const DIALOG_KEY = 'global-import-failed' + +export function useImportFailedNodeDialog() { + const { showSmallLayoutDialog } = useDialogService() + const dialogStore = useDialogStore() + + function hide() { + dialogStore.closeDialog({ key: DIALOG_KEY }) + } + + function show( + options: { + conflictedPackages?: ConflictDetectionResult[] + dialogComponentProps?: Omit + } = {} + ) { + const { dialogComponentProps, conflictedPackages = [] } = options + + showSmallLayoutDialog({ + key: DIALOG_KEY, + headerComponent: ImportFailedNodeHeader, + footerComponent: ImportFailedNodeFooter, + component: ImportFailedNodeContent, + dialogComponentProps, + props: { + conflictedPackages + }, + footerProps: { + conflictedPackages + } + }) + } + + return { show, hide } +} diff --git a/src/workbench/extensions/manager/composables/useNodeConflictDialog.ts b/src/workbench/extensions/manager/composables/useNodeConflictDialog.ts new file mode 100644 index 0000000000..1eda5916db --- /dev/null +++ b/src/workbench/extensions/manager/composables/useNodeConflictDialog.ts @@ -0,0 +1,54 @@ +import { useDialogService } from '@/services/dialogService' +import type { DialogComponentProps } from '@/stores/dialogStore' +import { useDialogStore } from '@/stores/dialogStore' +import NodeConflictDialogContent from '@/workbench/extensions/manager/components/manager/NodeConflictDialogContent.vue' +import NodeConflictFooter from '@/workbench/extensions/manager/components/manager/NodeConflictFooter.vue' +import NodeConflictHeader from '@/workbench/extensions/manager/components/manager/NodeConflictHeader.vue' +import type { ConflictDetectionResult } from '@/workbench/extensions/manager/types/conflictDetectionTypes' + +const DIALOG_KEY = 'global-node-conflict' + +export function useNodeConflictDialog() { + const { showSmallLayoutDialog } = useDialogService() + const dialogStore = useDialogStore() + + function hide() { + dialogStore.closeDialog({ key: DIALOG_KEY }) + } + + function show( + options: { + showAfterWhatsNew?: boolean + conflictedPackages?: ConflictDetectionResult[] + dialogComponentProps?: Omit + buttonText?: string + onButtonClick?: () => void + } = {} + ) { + const { + dialogComponentProps, + buttonText, + onButtonClick, + showAfterWhatsNew, + conflictedPackages + } = options + + showSmallLayoutDialog({ + key: DIALOG_KEY, + headerComponent: NodeConflictHeader, + footerComponent: NodeConflictFooter, + component: NodeConflictDialogContent, + dialogComponentProps, + props: { + showAfterWhatsNew, + conflictedPackages + }, + footerProps: { + buttonText, + onButtonClick + } + }) + } + + return { show, hide } +}