From 9f014bdbff88446918e444ff829add3741f0b211 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 29 Aug 2026 19:10:28 +0900 Subject: [PATCH] =?UTF-8?q?fix(B06):=20=EC=8B=9C=EC=84=A4=EC=9D=B4=20?= =?UTF-8?q?=EB=B0=94=EB=80=8C=EC=96=B4=EB=8F=84=20=EA=B3=A0=EB=A5=B8=20?= =?UTF-8?q?=EC=B9=B8=EC=9D=B4=20=EA=B0=95=EC=A1=B0=EB=90=98=EA=B2=8C=20?= =?UTF-8?q?=EC=9D=B4=EC=8B=9D=EC=9D=84=20=EB=8B=A4=EC=8B=9C=20=EB=8F=8C?= =?UTF-8?q?=EB=A6=B0=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 벽 선택은 카드가 먼저 처리하고 폼 교체가 뒤따른다. 그래서 다른 기슭막이를 보다가 배관 유출 벽을 고르면, 이식 시점의 목적지 칸이 아직 이전 시설 것이라 행이 엉뚱한 칸으로 가고 강조도 남지 않았다. 폼이 갈아 끼워진 뒤 refreshAdjustSlots()로 한 번 더 이식한다. Co-Authored-By: Claude Opus 5 (1M context) --- B06_Section/B06_Section_UI_Adjust_Dock.ts | 11 +++++++++++ B06_Section/B06_Section_UI_Page_Structures_Panel.ts | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/B06_Section/B06_Section_UI_Adjust_Dock.ts b/B06_Section/B06_Section_UI_Adjust_Dock.ts index be68c9cd..dd3a9c1a 100644 --- a/B06_Section/B06_Section_UI_Adjust_Dock.ts +++ b/B06_Section/B06_Section_UI_Adjust_Dock.ts @@ -170,6 +170,17 @@ export function adoptAdjustPanel(panelRoot: HTMLElement): void { relocateSideRows(panelRoot); } +/** + * 이식을 **다시 한 번** 돌린다 — 폼이 다른 시설로 갈아 끼워진 뒤에 부른다. + * 벽 선택은 카드가 먼저 처리하고 폼 교체가 뒤따르므로, 처음 이식할 때는 목적지 + * 칸(배관 유입구·유출구 / 독립 좌·우)이 아직 이전 시설 것이다(2026-08-30 사용자: + * 다른 기슭막이를 고른 뒤 배관 유출을 고르면 강조가 없다). + */ +export function refreshAdjustSlots(): void { + const panel = slot?.firstElementChild as HTMLElement | null; + if (panel) relocateSideRows(panel); +} + /** 이 사본이 슬롯에 서 있으면 내린다 — 다른 사본이 이미 대신 서 있으면 손대지 않는다. */ export function releaseAdjustPanel(panelRoot: HTMLElement): void { if (!slot || !slot.contains(panelRoot)) return; diff --git a/B06_Section/B06_Section_UI_Page_Structures_Panel.ts b/B06_Section/B06_Section_UI_Page_Structures_Panel.ts index 5016e46b..54868d13 100644 --- a/B06_Section/B06_Section_UI_Page_Structures_Panel.ts +++ b/B06_Section/B06_Section_UI_Page_Structures_Panel.ts @@ -24,7 +24,12 @@ import { } from "../B05_Profile/B05_Profile_Api_Structures"; import { fetchDetailPipePoints } from "../B04_PreProcess/B04_PreProcess_Api_Fetch"; import { showToast } from "@ui/ui_template_elements"; -import { adjustDockRoot, resetAdjustDock, setAdjustSideSlots } from "./B06_Section_UI_Adjust_Dock"; +import { + adjustDockRoot, + refreshAdjustSlots, + resetAdjustDock, + setAdjustSideSlots, +} from "./B06_Section_UI_Adjust_Dock"; import type { SectionDetailResponse } from "./B06_Section_Api_Fetch"; import type { StationControls } from "./B06_Section_UI_Page_Station_Controls"; @@ -411,6 +416,8 @@ export function wireStructureSelection( origRevet(chainageM, key); panel.showPipeAt(key ? ownerChainageOf(chainageM) : null); if (key) syncInletStructure(); + // 폼이 이 시설로 갈아 끼워진 뒤에 이식을 다시 돌린다 — 목적지 칸이 그제야 선다. + refreshAdjustSlots(); }; const origFord = stationControls.ford.select;