From 360ee9fa78faa4c3fba4998d494ba19d2ee834de Mon Sep 17 00:00:00 2001 From: umsangdon Date: Wed, 7 Oct 2026 08:10:44 +0900 Subject: [PATCH] =?UTF-8?q?fix(B07):=20=EA=B3=84=ED=9A=8D=ED=8F=89?= =?UTF-8?q?=EB=A9=B4=EB=8F=84=20[=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8]=20?= =?UTF-8?q?=EB=92=A4=20=EB=B3=B4=EB=8D=98=20=EC=9E=A5=EC=97=90=20=EA=B7=B8?= =?UTF-8?q?=EB=8C=80=EB=A1=9C=20=EB=A8=B8=EB=AD=84(73-8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK --- B07_DesignDetail/B07_DesignDetail_UI_Page.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/B07_DesignDetail/B07_DesignDetail_UI_Page.ts b/B07_DesignDetail/B07_DesignDetail_UI_Page.ts index a26e8b74f..3be48a4e3 100644 --- a/B07_DesignDetail/B07_DesignDetail_UI_Page.ts +++ b/B07_DesignDetail/B07_DesignDetail_UI_Page.ts @@ -78,6 +78,9 @@ function L(key: keyof typeof ui_locales): string { /* ----------------------------------------------------------------------------- * 화면 조립 * -------------------------------------------------------------------------- */ +/** 종류 · 대피소 자리를 고쳐 화면을 다시 세울 때 — 보던 장 id. 다시 세운 뒤 그 장을 연다(없으면 첫 장). */ +let reopenDrawingId: string | undefined; + export async function renderB07DesignDetail(root: HTMLElement): Promise { const projectId = localStorage.getItem(CURRENT_PROJECT_ID_KEY); let workflowState: WorkflowState | undefined; @@ -437,6 +440,7 @@ export async function renderB07DesignDetail(root: HTMLElement): Promise { // 종류 · 대피소 자리를 고쳤다 — 목록 · 도면을 서버에서 다시 받아 화면을 다시 세운다. onChanged: () => { if (!mayDiscardEdits()) return; + reopenDrawingId = currentDrawing?.id; cad.destroy(); void renderB07DesignDetail(root); }, @@ -485,7 +489,10 @@ export async function renderB07DesignDetail(root: HTMLElement): Promise { // 페이지 진입 시 첫 도면(종단도)을 자동 선택 — 빈 CAD 화면 방지. // CAD가 아직 준비 전이면 cad.load 가 붙들고 있다가 ready 때 보낸다. if (drawings.length > 0) { - void loadDrawing(drawings[0], 0).then(() => { + const reopen = drawings.findIndex((item) => item.id === reopenDrawingId); + reopenDrawingId = undefined; + const first = Math.max(reopen, 0); + void loadDrawing(drawings[first], first).then(() => { // 첫 장을 띄운 뒤에 나머지를 받는다 — 진입 속도를 뺏지 않는다. void prefetchAllDrawings(); });