From 7b2c22d9208822bca7f8d0889239813886a6c62d Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 25 Sep 2026 17:11:24 +0900 Subject: [PATCH] =?UTF-8?q?fix(M02):=20=EB=B3=91=ED=95=A9=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=B9=A0=EC=A7=84=20CAD=20=ED=98=B8=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=83=9D=EC=84=B1=20=C2=B7=20=F0=9F=92=BE=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=ED=86=B5=EB=A1=9C=EB=A5=BC=20=EB=8F=84?= =?UTF-8?q?=EB=A9=B4=20=EB=B6=80=ED=92=88=EC=97=90=20=EB=90=98=EC=82=B4?= =?UTF-8?q?=EB=A6=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01PxvYb5ufV1kWdBvZbpDfu6 --- .../M02_MasterTemplete_Drawing.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/M02_MasterTemplete/M02_MasterTemplete_Drawing.ts b/M02_MasterTemplete/M02_MasterTemplete_Drawing.ts index 3e16d5a8..12d51b77 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Drawing.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Drawing.ts @@ -170,6 +170,25 @@ export function mountDrawingTemplate( showToast(error instanceof Error ? error.message : "자리표 목록을 받지 못했습니다.", "error"), ); + // CAD 안 💾 · Ctrl+S — 양식 파일은 페이지 [저장] 만 쓴다. 저장 중 또 눌러도 한 번만 부른다. + let saving = false; + const hostSave = (): void => { + if (readOnly) return void showToast("이 양식은 볼 수만 있습니다.", "info"); + if (saving || !options.onSave) return; + saving = true; + getDoc() + .then((next) => options.onSave?.(next)) + .catch((error) => + showToast(error instanceof Error ? error.message : "양식을 저장하지 못했습니다.", "error"), + ) + .finally(() => (saving = false)); + }; + + const cad = createCadHost({ + title: "도면 양식", + onChanged: (dirty) => options.onChanged?.(dirty), + onHostSave: hostSave, + }); const load = (drawing: DrawingTemplateDoc): void => { cad.beginLoading(); cad.load(