diff --git a/M01_MasterData/M01_MasterData_UI_Side.ts b/M01_MasterData/M01_MasterData_UI_Side.ts index 8b16695e..7567367b 100644 --- a/M01_MasterData/M01_MasterData_UI_Side.ts +++ b/M01_MasterData/M01_MasterData_UI_Side.ts @@ -150,6 +150,8 @@ export function buildSide( const runs = new Map void>(); let restoring = false; let onPicked = (): void => {}; + /** 컨테이너별로 마지막에 고른 거름 줄 — 다시 펼칠 때 그 목록을 되살림(재료는 파일이 둘) */ + const lastRun = new Map(); const setActive = (id: string | null): void => { for (const [key, button] of buttons) button.classList.toggle("is-active", key === id); @@ -232,6 +234,7 @@ export function buildSide( /* 기억 못 해도 거름은 됨 */ } setActive(a.id); + lastRun.set(a.id.split(/[|\n]/)[0] as Group, a.id); a.onPick( sub.select.value, d, @@ -402,12 +405,12 @@ export function buildSide( onOpen({ group, file: one, sub: "", detail: "", label: L(GROUP_TITLE[group]) }); }); } - if (FILTERED.includes(group)) { + if (FILTERED.includes(group) || group === "재료") { root.querySelector(".ui-collapsible__title")?.addEventListener("click", () => { if (!root.classList.contains("is-collapsed")) return; // 닫을 때는 그대로 둠 restoring = true; try { - runs.get(`${group}|`)?.(); + runs.get(lastRun.get(group) ?? (group === "재료" ? "" : `${group}|`))?.(); } finally { restoring = false; }