fix(top-menu): use dynamic imports to eliminate deprecation warnings

- Replace static imports of deprecated ComfyButton and ComfyButtonGroup with dynamic imports
- Only loads legacy API files when frontend version < 1.33.9 (backward compatibility path)
- Frontend >= 1.33.9 users no longer see deprecation warnings since legacy code is never loaded
- Preserves full backward compatibility for older ComfyUI frontend versions
- All existing tests pass (159 JS + 65 Vue tests)
This commit is contained in:
Will Miao
2026-03-15 20:12:49 +08:00
parent 8b91920058
commit 58713ea6e0

View File

@@ -1,6 +1,4 @@
import { app } from "../../scripts/app.js"; import { app } from "../../scripts/app.js";
import { ComfyButtonGroup } from "../../scripts/ui/components/buttonGroup.js";
import { ComfyButton } from "../../scripts/ui/components/button.js";
const BUTTON_TOOLTIP = "Launch LoRA Manager (Shift+Click opens in new window)"; const BUTTON_TOOLTIP = "Launch LoRA Manager (Shift+Click opens in new window)";
const LORA_MANAGER_PATH = "/loras"; const LORA_MANAGER_PATH = "/loras";
@@ -95,7 +93,9 @@ const fetchVersionInfo = async () => {
return ""; return "";
}; };
const createTopMenuButton = () => { const createTopMenuButton = async () => {
const { ComfyButton } = await import("../../scripts/ui/components/button.js");
const button = new ComfyButton({ const button = new ComfyButton({
icon: "loramanager", icon: "loramanager",
tooltip: BUTTON_TOOLTIP, tooltip: BUTTON_TOOLTIP,
@@ -117,7 +117,7 @@ const createTopMenuButton = () => {
return button; return button;
}; };
const attachTopMenuButton = (attempt = 0) => { const attachTopMenuButton = async (attempt = 0) => {
if (document.querySelector(`.${BUTTON_GROUP_CLASS}`)) { if (document.querySelector(`.${BUTTON_GROUP_CLASS}`)) {
return; return;
} }
@@ -133,7 +133,9 @@ const attachTopMenuButton = (attempt = 0) => {
return; return;
} }
const loraManagerButton = createTopMenuButton(); const loraManagerButton = await createTopMenuButton();
const { ComfyButtonGroup } = await import("../../scripts/ui/components/buttonGroup.js");
const buttonGroup = new ComfyButtonGroup(loraManagerButton); const buttonGroup = new ComfyButtonGroup(loraManagerButton);
buttonGroup.element.classList.add(BUTTON_GROUP_CLASS); buttonGroup.element.classList.add(BUTTON_GROUP_CLASS);
@@ -158,7 +160,7 @@ const createExtensionObject = (useActionBar) => {
if (!useActionBar) { if (!useActionBar) {
console.log("LoRA Manager: using legacy button attachment (frontend version < 1.33.9)"); console.log("LoRA Manager: using legacy button attachment (frontend version < 1.33.9)");
attachTopMenuButton(); await attachTopMenuButton();
} else { } else {
console.log("LoRA Manager: using actionBarButtons API (frontend version >= 1.33.9)"); console.log("LoRA Manager: using actionBarButtons API (frontend version >= 1.33.9)");
} }