Files
chrmc40 8e3dceae99 ComfyUI-PromptChain
A prompt-authoring and image-iteration suite for ComfyUI.
2026-06-17 19:35:25 -07:00

32 lines
1.1 KiB
JavaScript

// Shared lazy-load utility for Svelte bridge modules.
// Ensures the shared CSS is loaded once and caches the imported module.
import { injectStyles } from "./global-styles.js";
let cssLoaded = false;
export function ensureSvelteCSS() {
// Global pcr-* styles (the body-portaled mode-menu dropdowns used by
// SearchableSelect etc.) were only injected when a PromptChain NODE mounted —
// so the viewer/gallery/sidebar, which can open with no node in the graph, got
// unstyled dropdowns. Inject here too (idempotent) so any Svelte UI has them.
injectStyles();
if (cssLoaded) return;
cssLoaded = true;
if (!document.querySelector('link[href*="promptchain-svelte.css"]')) {
const link = document.createElement("link");
link.rel = "stylesheet";
link.href = new URL("./svelte/assets/promptchain-svelte.css", import.meta.url).href;
document.head.appendChild(link);
}
}
export function createModuleLoader(importFn) {
let cached = null;
return async function loadModule() {
if (cached) return cached;
cached = await importFn();
return cached;
};
}