diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 6d0bfdbc..95a1be51 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -1275,10 +1275,22 @@ class ManagerMenuDialog extends ComfyDialog { this.element = $el("div.comfy-modal", { id:'cm-manager-dialog', parent: document.body }, [ content ]); } + get isVisible() { + return this.element?.style?.display !== "none"; + } + show() { this.element.style.display = "block"; } + toggleVisibility() { + if (this.isVisible) { + this.close(); + } else { + this.show(); + } + } + handleWorkflowGalleryButtonClick(e) { e.preventDefault(); e.stopPropagation(); @@ -1396,6 +1408,41 @@ app.registerExtension({ } ], + commands: [ + { + id: "Comfy.Manager.Menu.ToggleVisibility", + label: "Toggle Manager Menu Visibility", + icon: "mdi mdi-puzzle", + function: () => { + if (!manager_instance) { + setManagerInstance(new ManagerMenuDialog()); + manager_instance.show(); + } else { + manager_instance.toggleVisibility(); + } + }, + }, + { + id: "Comfy.Manager.CustomNodesManager.ToggleVisibility", + label: "Toggle Custom Nodes Manager Visibility", + icon: "pi pi-server", + function: () => { + if (CustomNodesManager.instance?.isVisible) { + CustomNodesManager.instance.close(); + return; + } + + if (!manager_instance) { + setManagerInstance(new ManagerMenuDialog()); + } + if (!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.NORMAL); + }, + }, + ], + init() { $el("style", { textContent: style, diff --git a/js/custom-nodes-manager.js b/js/custom-nodes-manager.js index 48ee4f63..5ac8b418 100644 --- a/js/custom-nodes-manager.js +++ b/js/custom-nodes-manager.js @@ -1916,4 +1916,8 @@ export class CustomNodesManager { close() { this.element.style.display = "none"; } + + get isVisible() { + return this.element?.style?.display !== "none"; + } } \ No newline at end of file