diff --git a/B05_wf2_Route/B05_wf2_Route_UI_Profile_MassHaul.ts b/B05_wf2_Route/B05_wf2_Route_UI_Profile_MassHaul.ts index 010a0768..195e61b5 100644 --- a/B05_wf2_Route/B05_wf2_Route_UI_Profile_MassHaul.ts +++ b/B05_wf2_Route/B05_wf2_Route_UI_Profile_MassHaul.ts @@ -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 사용자 지시 — 펼치면 같이 올라와 * 테이블 영역을 침범해도 된다). 접혀 있으면 패널 바닥으로 돌아온다. 높이 조절 중에도 diff --git a/ui_template/ui_template_resizer.css b/ui_template/ui_template_resizer.css index 9c9531af..e933e97f 100644 --- a/ui_template/ui_template_resizer.css +++ b/ui_template/ui_template_resizer.css @@ -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; } /* 위아래로 끌어 높이를 조절 — 패널 위쪽 경계에 가로로 눕는다. */