fix(M01): 재료 컨테이너를 닫았다 다시 열면 기억된 거름과 목록이 어긋나던 것 — 마지막 거름으로 목록 되살림
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
This commit is contained in:
@@ -153,6 +153,8 @@ export function buildSide(
|
|||||||
const runs = new Map<string, () => void>();
|
const runs = new Map<string, () => void>();
|
||||||
let restoring = false;
|
let restoring = false;
|
||||||
let onPicked = (): void => {};
|
let onPicked = (): void => {};
|
||||||
|
/** 컨테이너별로 마지막에 고른 거름 줄 — 다시 펼칠 때 그 목록을 되살림(재료는 파일이 둘) */
|
||||||
|
const lastRun = new Map<Group, string>();
|
||||||
|
|
||||||
const setActive = (id: string | null): void => {
|
const setActive = (id: string | null): void => {
|
||||||
for (const [key, button] of buttons) button.classList.toggle("is-active", key === id);
|
for (const [key, button] of buttons) button.classList.toggle("is-active", key === id);
|
||||||
@@ -235,6 +237,7 @@ export function buildSide(
|
|||||||
/* 기억 못 해도 거름은 됨 */
|
/* 기억 못 해도 거름은 됨 */
|
||||||
}
|
}
|
||||||
setActive(a.id);
|
setActive(a.id);
|
||||||
|
lastRun.set(a.id.split(/[|\n]/)[0] as Group, a.id);
|
||||||
a.onPick(
|
a.onPick(
|
||||||
sub.select.value,
|
sub.select.value,
|
||||||
d,
|
d,
|
||||||
@@ -405,12 +408,12 @@ export function buildSide(
|
|||||||
onOpen({ group, file: one, sub: "", detail: "", label: L(GROUP_TITLE[group]) });
|
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", () => {
|
root.querySelector(".ui-collapsible__title")?.addEventListener("click", () => {
|
||||||
if (!root.classList.contains("is-collapsed")) return; // 닫을 때는 그대로 둠
|
if (!root.classList.contains("is-collapsed")) return; // 닫을 때는 그대로 둠
|
||||||
restoring = true;
|
restoring = true;
|
||||||
try {
|
try {
|
||||||
runs.get(`${group}|`)?.();
|
runs.get(lastRun.get(group) ?? (group === "재료" ? "" : `${group}|`))?.();
|
||||||
} finally {
|
} finally {
|
||||||
restoring = false;
|
restoring = false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user