export const COMFY_CLASS = "DumasLoadImagesFolder"; export const STATE_PROP = "loadImagesFolderState"; export const HIDDEN_INPUT_NAME = "LoadImagesFolderState"; export const DEFAULT_STATE = { version: 1, folder: "", recursive: false, sort: "name", sort_dir: "asc", selected: [], selection_mode: "selected", first_n: 5, }; export function readState(node) { const value = node.properties?.[STATE_PROP]; if (typeof value === "string" && value) { try { return { ...DEFAULT_STATE, ...JSON.parse(value) }; } catch (_error) { return { ...DEFAULT_STATE }; } } return { ...DEFAULT_STATE }; } export function writeState(node, state) { if (!node.properties) node.properties = {}; node.properties[STATE_PROP] = JSON.stringify({ ...DEFAULT_STATE, ...(state || {}) }); } export function sortFiles(files, sort, dir) { const ordered = [...(files || [])]; ordered.sort((a, b) => { if (sort === "date") { const delta = (a?.mtime || 0) - (b?.mtime || 0); if (delta !== 0) return dir === "desc" ? -delta : delta; } const delta = String(a?.file || "").localeCompare(String(b?.file || ""), undefined, { numeric: true, sensitivity: "base", }); return dir === "desc" ? -delta : delta; }); return ordered; }