fix(B05): 유토곡선 리사이저 TDZ 크래시로 페이지 진입 불가 수정 + 표시선 2px

원인: createPanelResizer가 생성 중 세션 저장 높이를 복원하며 onResize →
syncHandlePosition을 부르는데 'open'(let) 선언이 그 아래라 TDZ ReferenceError로
B05 렌더 전체가 죽었다. 저장된 높이가 있는 브라우저에서만 재현돼(새 세션 테스트는
통과) 사용자 환경에서만 접속 불가로 나타났다. 상태 선언을 리사이저 생성 앞으로 이동.

- 리사이저 상시 표시선 1px→2px, hover/드래그 3px→4px(2026-08-04 사용자 지시)

검증: masshaul-open=true + height=320 세션 상태로 진입 — 본문 렌더, 오버레이 320px
복원, 오류 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-04 19:37:46 +09:00
co-authored by Claude Opus 5
parent 05887b6a7e
commit c8aaafcb54
2 changed files with 10 additions and 7 deletions
@@ -171,6 +171,12 @@ export function createRouteMassHaulPanel(onChanged: () => void): RouteMassHaulPa
scroll.className = "b05-profile__masshaul-scroll";
const legendLayer = document.createElement("div");
legendLayer.className = "b05-profile__masshaul-legend";
// 상태 선언은 반드시 리사이저 생성보다 **먼저** — createPanelResizer가 세션에 저장된
// 높이를 복원하며 생성 중에 onResize → syncHandlePosition을 부르는데, `open`이 그 아래
// 있으면 TDZ ReferenceError로 B05 페이지 전체가 죽는다(2026-08-04 사용자 보고 —
// 저장된 높이가 있는 브라우저에서만 재현되는 이유).
let open = sessionStorage.getItem(OPEN_KEY) === "true";
let context: RouteMassHaulContext | null = null;
// 높이 조절 — 메인 하단 패널과 같은 공용 리사이저(위 경계, 위로 끌면 커짐, 세션 보존).
let resizeRedrawPending = false;
const resizer = createPanelResizer({
@@ -218,9 +224,6 @@ export function createRouteMassHaulPanel(onChanged: () => void): RouteMassHaulPa
{ passive: false },
);
let open = sessionStorage.getItem(OPEN_KEY) === "true";
let context: RouteMassHaulContext | null = null;
/**
* 손잡이를 오버레이 **위 경계**에 태운다(2026-08-04 사용자 지시 — 펼치면 같이 올라와
* 테이블 영역을 침범해도 된다). 접혀 있으면 패널 바닥으로 돌아온다. 높이 조절 중에도
+4 -4
View File
@@ -27,7 +27,7 @@
top: 50%;
right: 0;
left: 0;
height: 1px;
height: 2px;
transform: translateY(-50%);
}
@@ -35,7 +35,7 @@
top: 0;
bottom: 0;
left: 50%;
width: 1px;
width: 2px;
transform: translateX(-50%);
}
@@ -46,12 +46,12 @@
.ui-resizer--vertical:hover::before,
.ui-resizer--vertical.is-dragging::before {
height: 3px;
height: 4px;
}
.ui-resizer--horizontal:hover::before,
.ui-resizer--horizontal.is-dragging::before {
width: 3px;
width: 4px;
}
/* 위아래로 끌어 높이를 조절 — 패널 위쪽 경계에 가로로 눕는다. */