diff --git a/M01_MasterData/M01_MasterData_UI_LogicLab.ts b/M01_MasterData/M01_MasterData_UI_LogicLab.ts index caa1bf19c..14210902b 100644 --- a/M01_MasterData/M01_MasterData_UI_LogicLab.ts +++ b/M01_MasterData/M01_MasterData_UI_LogicLab.ts @@ -394,16 +394,16 @@ export async function mountM01LogicLab( } showLoadingOverlay(); try { - await saveFiles([...byFile.values()]); + // 키 없는 새 줄은 서버가 새 키를 줌(added) — 저장 뒤 그 로직을 엶 + const saved = (await saveFiles([...byFile.values()])) as { + added?: { file: string; key: string }[]; + }; const was = opened; - const before = new Set(allLogics.map((x) => x.키)); drafts = {}; await reload(); showToast(tx("Save_Done"), "success"); - const made = - was?.row && !was.row.키 - ? allLogics.find((x) => !before.has(x.키) && x.이름 === was.row?.이름) - : undefined; + const newKey = was?.row && !was.row.키 ? saved.added?.at(-1)?.key : undefined; + const made = newKey ? allLogics.find((x) => x.키 === newKey) : undefined; if (made) await open(logicId(made.구분, made.키), made.구분, made.키); else if (was?.row?.키) await open(logicId(was.sub, was.row.키), was.sub, was.row.키); else show(null);