fix(M02): 옵션 정의 화면 위에 집계표가 덮이던 낡은 mount 막음 · 대시보드 구조물 옵션 카드 연결 (197-1)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jonfdxn1Xit9bdkNJpE4G
This commit is contained in:
2026-10-10 14:01:37 +09:00
co-authored by Claude Sonnet 5.5
parent 6e8692d133
commit ee7c7228b9
2 changed files with 144 additions and 0 deletions
@@ -352,18 +352,21 @@ export function createMain(
async function mount(doc: unknown, at: Selection): Promise<void> {
const readOnly = !writable(at);
const mine = seq; // 모듈 · 집계표 번호를 기다리는 사이 다른 화면(옵션 정의 등)이 열렸으면 그만둠
host.replaceChildren();
if (at.kind === "table") {
const create = await findExport<(h: HTMLElement, d: unknown, o: object) => EditorHandle>(
SHEET_MODS,
"createSheet",
);
if (mine !== seq) return;
if (!create) return empty(L("M02_NoSheet"));
// 구조물집계표(프로젝트 층 아님)만 — 도면 · 면적산출 줄에 번호 · 칸을 고르면 아래 컨테이너 ·
// 고칠 수 있으면 일위대가 · 도면 · 면적산출 칸은 조회 후 선택
const struct =
at.layer !== "project" && at.name === STRUCTURE_TABLE ? buildPanel(at.layer) : null;
if (struct) await struct.reload();
if (mine !== seq) return struct?.destroy();
panel = struct;
// ⚠ sheet 는 바깥(다시 열기 등으로 drop() 이 null 로 되돌리는) 값 — 표 부품이
// 헐린 뒤에도 안 떼인 이벤트가 이 줄을 부르면 sheet?.getDoc() 가 undefined 라
@@ -417,6 +420,7 @@ export function createMain(
// 일위대가 상세(39-3) — 구조물 열마다 하나 · 고침은 이 화면 [저장]으로 ·
// 단가승격 · 사전조합(50-3) = 같은 상세 모드(도면 · 면적 · 자재 없음 · 이름 = 키)
const { mountLaborDetail } = await import("./M02_MasterTemplete_Labor_Detail");
if (mine !== seq) return;
const mode = isPrecombo(at.kind) ? at.kind : undefined;
const labor = mountLaborDetail(host, doc, {
layer: at.layer,
@@ -447,6 +451,7 @@ export function createMain(
DRAWING_MODS,
at.kind === "structure" ? "mountStructureSheets" : "mountDrawingTemplate",
);
if (mine !== seq) return;
if (mountDrawing) {
editor = mountDrawing(host, doc, {
onSave: () => void doSave(),