From 136965c47280e89f7223930f7c755aaf3ef04625 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Mon, 7 Sep 2026 09:07:09 +0900 Subject: [PATCH] =?UTF-8?q?fix(B06):=20=EC=95=8C=EC=95=BD=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B8=EC=9D=B4=20=EC=A2=85=EB=8B=A8=20=ED=8C=A8=EB=84=90=20?= =?UTF-8?q?=EB=86=92=EC=9D=B4=EB=A5=BC=20=EB=B6=80=ED=92=80=EB=A6=AC?= =?UTF-8?q?=EB=8D=98=20=EA=B2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ④(2026-09-07)로 붙인 레인이 `chartWrap` 안에 서는데, 그래프 높이를 정할 때 잰 값에서 레인 몫을 빼지 않아 되먹임이 생겼음 — 잰 값이 커지면 그래프를 키우고, 그러면 다음 회차에 더 커짐. 실측 패널이 **16,664px** 까지 부풀어 카드·알약을 누를 수 없었음. 레인 높이(`STRUCTURE_LANE_HEIGHT_PX`)를 빼서 한 번에 수렴하게 함. 자체검증 — 패널 242px · 그래프 228px · 레인 42px · 알약 10개. tsc 통과. Co-Authored-By: Claude Opus 5 (1M context) --- B06_Section/B06_Section_UI_Section_View.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/B06_Section/B06_Section_UI_Section_View.ts b/B06_Section/B06_Section_UI_Section_View.ts index 78cd7557..5f75c087 100644 --- a/B06_Section/B06_Section_UI_Section_View.ts +++ b/B06_Section/B06_Section_UI_Section_View.ts @@ -45,7 +45,10 @@ import { } from "./B06_Section_UI_Cross_View_Metrics"; import { CROSS_HEIGHT } from "./B06_Section_UI_Section_Common"; import { LONG_PAD } from "./B06_Section_UI_Section_Common"; -import { buildStructureLane } from "../B05_Profile/B05_Profile_UI_Structures_Marks"; +import { + buildStructureLane, + STRUCTURE_LANE_HEIGHT_PX, +} from "../B05_Profile/B05_Profile_UI_Structures_Marks"; import { structureAnchorM, type StructureInstance, @@ -491,7 +494,11 @@ export function createSectionView( const measured = chartWrap.clientHeight; lastChartAvailable = measured > 0 ? measured : Math.max(panelHeight() - PANEL_CHROME_PX, MIN_LONG_HEIGHT); - const heights = chartHeights(lastChartAvailable); + // 알약 레인도 `chartWrap` 안에 서므로 잰 높이에 **이미 들어 있다**. 그 몫을 빼지 않으면 + // 다음 회차에 잰 값이 그만큼 더 커지고, 그 값으로 그래프를 키우면 또 커지는 되먹임이 + // 생겨 패널이 16,000px 까지 부푼다(2026-09-07 실측). 빼 두면 한 번에 수렴한다. + const laneHeight = markStructures.length && markTypes.length ? STRUCTURE_LANE_HEIGHT_PX : 0; + const heights = chartHeights(Math.max(lastChartAvailable - laneHeight, MIN_LONG_HEIGHT)); const minWidth = longitudinalMinimumWidth(detail.longitudinal, cachedStationInterval); const chartWidth = Math.max(renderWidth, minWidth); const chart = buildLongitudinalChart({