From 41cbc0f1e99fef69d7a5c424e64cafd2c0964c3e Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 28 Aug 2026 09:46:26 +0900 Subject: [PATCH] =?UTF-8?q?fix(B05):=20=EB=AC=BC=EB=84=98=EC=9D=B4?= =?UTF-8?q?=ED=8F=AC=EC=9E=A5=EC=9D=84=20=EB=B9=84=EC=A0=95=EA=B7=9C=20?= =?UTF-8?q?=EC=B8=A1=EC=A0=90=EC=97=90=EC=84=9C=20=EB=B9=BC=EA=B3=A0=20?= =?UTF-8?q?=EC=A2=85=EB=8B=A8=20=EC=95=8C=EC=95=BD=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=EB=A7=8C=20=EB=91=94=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 횡단도로 표현할 것이 없는 시설이라 측점을 만들 이유가 없다(2026-08-28 사용자 확정). 서버는 resolve_extra_stations 에서 이미 제외했고, 프론트도 맞춘다. 표시(setIrregularStations)와 서버 전송(irregularStations())에서만 뺀다 — 관 정본 대조(setPipeChainages)는 전체 목록을 써야 물넘이가 정본에서 지워지지 않으므로 pipesToStations 는 그대로 둔다. 알약 레인은 pipesToMarks 가 따로 만들므로 구조물 버튼은 그대로 남는다. Co-Authored-By: Claude Opus 5 (1M context) --- B05_Profile/B05_Profile_UI_Page_Structures.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/B05_Profile/B05_Profile_UI_Page_Structures.ts b/B05_Profile/B05_Profile_UI_Page_Structures.ts index 00af15b7..4a68b7a9 100644 --- a/B05_Profile/B05_Profile_UI_Page_Structures.ts +++ b/B05_Profile/B05_Profile_UI_Page_Structures.ts @@ -85,6 +85,12 @@ export function createStructuresBridge(deps: StructuresBridgeDeps) { }); } + /** 물넘이포장은 비정규 측점이 아니다 — 횡단도로 표현할 것이 없어 종단 알약으로만 + * 다룬다(2026-08-28 사용자 확정). 관 정본 대조(setPipeChainages)는 전체 목록을 써야 + * 물넘이가 지워지지 않으므로, **표시·서버 전송 쪽에서만** 뺀다. */ + const withoutFordPavement = (stations: IrregularStation[]): IrregularStation[] => + stations.filter((station) => station.structure !== FACILITY_NAMES.ford_pavement); + /** [초기선 복원] 등에서 그래프의 배관 투영만 지운다 — 관 정본은 건드리지 않는다. */ function clearProjectedStations(): void { pipeStations = []; @@ -102,7 +108,7 @@ export function createStructuresBridge(deps: StructuresBridgeDeps) { .forEach((station) => deps.profilePanel().resetStationEdit(station.chainage_m)); irregularStations = stations; deps.renderStationLines(); - deps.profilePanel().setIrregularStations(stations); + deps.profilePanel().setIrregularStations(withoutFordPavement(stations)); // 좌측 구조물 폼에서 "배관" 항목을 고쳤거나 지웠으면 배수유역도까지 따라가야 한다. // 관 목록이 그대로면 배수유역도가 아무 일도 하지 않으므로 되먹임 고리는 여기서 끊긴다. deps @@ -281,8 +287,8 @@ export function createStructuresBridge(deps: StructuresBridgeDeps) { onPick: (chainage, typeId) => deps.panel().structures.addAt(chainage, typeId), }); }, - /** 그래프·3D가 쓰는 현재 비정규 측점 목록. */ - irregularStations: () => irregularStations, + /** 그래프·3D가 쓰는 현재 비정규 측점 목록(물넘이포장 제외 — 알약 레인 몫). */ + irregularStations: () => withoutFordPavement(irregularStations), /** 관 지점 목록이 바뀜 — 측점 투영과 알약 레인을 한 번에 맞춘다. */ setPipes(pipes: PipeProjection[]): void { pipeStations = pipesToStations(pipes);