diff --git a/src/composables/useCoreCommands.ts b/src/composables/useCoreCommands.ts index a9b643b0e..824bd04d9 100644 --- a/src/composables/useCoreCommands.ts +++ b/src/composables/useCoreCommands.ts @@ -716,8 +716,26 @@ export function useCoreCommands(): ComfyCommand[] { icon: 'pi pi-objects-column', label: 'Custom Nodes (Beta)', versionAdded: '1.12.10', - function: () => { - dialogService.toggleManagerDialog() + function: async () => { + const isLegacyManagerUI = + await useComfyManagerService().isLegacyManagerUI() + if (isLegacyManagerUI) { + try { + await useCommandStore().execute( + 'Comfy.Manager.Menu.ToggleVisibility' // This command is registered by legacy manager FE extension + ) + } catch (error) { + useToastStore().add({ + severity: 'error', + summary: t('g.error'), + detail: t('manager.legacyMenuNotAvailable'), + life: 3000 + }) + dialogService.showManagerDialog() + } + } else { + dialogService.showManagerDialog() + } } }, { diff --git a/src/constants/coreMenuCommands.ts b/src/constants/coreMenuCommands.ts index 4c19c622b..30ff2768c 100644 --- a/src/constants/coreMenuCommands.ts +++ b/src/constants/coreMenuCommands.ts @@ -13,14 +13,7 @@ export const CORE_MENU_COMMANDS = [ ], [['Edit'], ['Comfy.Undo', 'Comfy.Redo']], [['Edit'], ['Comfy.OpenClipspace']], - [ - ['Manager'], - [ - 'Comfy.Manager.CustomNodesManager.ShowCustomNodesMenu', - 'Comfy.Manager.ShowLegacyManagerMenu', - 'Comfy.Manager.CustomNodesManager.ShowLegacyCustomNodesMenu' - ] - ], + [['Manager'], ['Comfy.Manager.CustomNodesManager.ShowCustomNodesMenu']], [ ['Help'], [ diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 4114f405d..931cc0abe 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -154,7 +154,7 @@ }, "manager": { "title": "Custom Nodes Manager", - "legacyMenuNotAvailable": "Legacy manager menu is not available in this version of ComfyUI. Please use the new manager menu instead.", + "legacyMenuNotAvailable": "Legacy manager menu is not available, defaulting to the new manager menu.", "failed": "Failed ({count})", "noNodesFound": "No nodes found", "noNodesFoundDescription": "The pack's nodes either could not be parsed, or the pack is a frontend extension only and doesn't have any nodes.", diff --git a/src/services/comfyManagerService.ts b/src/services/comfyManagerService.ts index 17fc9eb44..0e8f245ac 100644 --- a/src/services/comfyManagerService.ts +++ b/src/services/comfyManagerService.ts @@ -32,7 +32,8 @@ enum ManagerRoute { GET_NODES = 'v2/customnode/getmappings', GET_PACKS = 'v2/customnode/getlist', IMPORT_FAIL_INFO = 'v2/customnode/import_fail_info', - REBOOT = 'v2/manager/reboot' + REBOOT = 'v2/manager/reboot', + IS_LEGACY_MANAGER_UI = 'v2/manager/is_legacy_manager_ui' } const managerApiClient = axios.create({ @@ -247,6 +248,15 @@ export const useComfyManagerService = () => { ) } + const isLegacyManagerUI = async (signal?: AbortSignal) => { + const errorContext = 'Checking if user set Manager to use the legacy UI' + + return executeRequest( + () => managerApiClient.get(ManagerRoute.IS_LEGACY_MANAGER_UI, { signal }), + { errorContext } + ) + } + return { // State isLoading, @@ -268,6 +278,7 @@ export const useComfyManagerService = () => { updateAllPacks, // System operations - rebootComfyUI + rebootComfyUI, + isLegacyManagerUI } }