v0.1.45
v0.1.45 — 노드 정보 탭 ↔ 서브 사이드바 양방향 네비게이션
요청
- "노드 정보 탭에서, 노드 내의 다른 노드 정보 선택시 서브 사이드바로 표시. 서브사이드바에서 해당 노드의 파일명(헤더의 있는)을 클릭하면 메인 사이드바에 표시."
변경 파일
src/components/Layout/DetailPanel.tsx:- 신규 prop:
onPromoteToMain?: (id: string) => void— 서브 사이드바 모드에서 사용. 헤더 파일명을 클릭 가능 버튼으로 만들어 메인 사이드바로 승격. - 신규
handlePick(id)— 항상openSubSidebar(id)호출. 메인 모드든 서브 모드든 일관된 동작: - 메인 모드 (nodeIdOverride 미설정): 메인 selection 은 유지, 서브 사이드바에 클릭한 노드 표시.
- 서브 모드 (nodeIdOverride 설정): 서브 사이드바 내용을 클릭한 노드로 교체 (chain navigation).
- 모든
onPick={selectNode}→onPick={handlePick}으로 교체 (FileDetail/HttpDetail/ExternalDetail 3개). FileDetail의 헤더node.name—onPromoteToMain설정 시 클릭 가능 버튼 (hover:text-accent-primary).HttpDetail의 헤더 method+url — 클릭 가능 버튼. 신규nodeIdprop 으로 promote 시 사용할 ID 전달.ExternalDetail의 헤더 service.name — 클릭 가능 버튼.ext:${service.id}ID 로 promote.src/components/Layout/RightSidebar.tsx:- 신규
promoteSubToMain(id)함수 —selectNode(id) → setActiveTab('node-info') → closeSubSidebar()체인. - 서브 사이드바의
<DetailPanel>에onPromoteToMain={promoteSubToMain}전달.
사용자 흐름
- 1. 메인 사이드바 'node-info' 탭 에서 노드 정보 봄.
- 2. incoming/outgoing/imports 등 관련 노드 클릭 → 서브 사이드바가 등장하여 그 노드 표시 (메인 selection 유지).
- 3. 서브 사이드바 안에서 또 다른 관련 노드 클릭 → 서브 사이드바 내용 교체.
- 4. 서브 사이드바 헤더의 파일명/url/service명 클릭 → 메인 사이드바 'node-info' 탭으로 승격 + 서브 사이드바 자동 닫힘.
검증
npx tsc --noEmitexit=0.npm run build성공 — out/renderer/index-D_nIdk8y.js 3,065.93kB (+2kB).
📦 GitHub 릴리스 노트: v0.1.45