fix(472-5 관 폼): 열린 관 폼이 밖에서 바뀐 값(되돌리기 · 횡단 보기)으로 다시 엶

- 흠(화면에서 찾음): ↶ 뒤 종단 「구조물 배치」 관 폼 칸이 옛 값(관경 1200)을 쥐고, 다른 칸(동물이동형)을 바꾸면
  옛 관경이 초안에 되쓰여 되돌림이 사라짐
- setPipeFacilities — 고른 관 값이 바뀌면 loadPipeForm(실시간 반영 중 · 임시 배치는 둠)
- 시험 test_472_5_shop_owner 배선 줄 · 화면 검증_sub2: 관경 바꿈 → ↶ 폼 1000 → 동물이동형 바꿔도 관경 1000 · 횡단 보기 관경 1500 → 종단 폼 1500 · ↶ ↷ 따라감

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-19 10:15:49 +09:00
co-authored by Claude Opus 5.5
parent a3815bfaa1
commit 629c23ac22
2 changed files with 12 additions and 0 deletions
@@ -573,8 +573,16 @@ export function createStructuresSection(
},
getStructures: () => [...structures],
setPipeFacilities(pipes) {
const before = pipeFacilities;
pipeFacilities = pipes.map((pipe) => ({ ...pipe }));
followPipeList(panelContext, pipeFacilities);
// 열린 관 폼 — 값이 밖에서 바뀌면(되돌리기 · 다른 보기) 새 값으로 다시 엶 · 고치던 실시간 반영 · 임시 배치는
// 둠(472-5 · 옛 칸 값이 다음 조작에 되쓰이던 흠)
const at = selectedPipeChainage;
if (at === null || applyingLive || tempPipeChainage !== null) return;
const near = (pipe: PipeFacilityItem) => Math.abs(pipe.chainage_m - at) < PIPE_MATCH_M;
const now = pipeFacilities.find(near);
if (now && JSON.stringify(now) !== JSON.stringify(before.find(near))) loadPipeForm(now);
},
selectPipeByChainage(chainageM) {
if (chainageM !== null) callbacks.onReveal?.();
@@ -116,5 +116,9 @@ def test_배선() -> None:
assert panel.index("seen.structures = JSON.stringify(structures);") < panel.index(
"writePendingStructures(deps.projectId, structures);"
)
# 열린 관 폼 — 밖에서 바뀐 값(되돌리기 · 다른 보기)으로 다시 엶(옛 칸 값 되쓰던 흠)
form = _read("B05_Profile", "B05_Profile_UI_Structures_Panel.ts")
assert "if (at === null || applyingLive || tempPipeChainage !== null) return;" in form
assert "JSON.stringify(now) !== JSON.stringify(before.find(near))) loadPipeForm(now);" in form
history = _read("B05_Profile", "B05_Profile_UI_Profile_History.ts")
assert "announceDesignStore(projectId);" in history