**task-1368.1 완료 보고** (dev2-team) **완료 보고서: InsuRo 네비게이션 라우트 매핑 수정** (7분 16초) **핵심 결과** `getActiveTabFromPath()` 함수에 명시적 경로 매핑 추가 + info-settings 탭에 계정 메뉴 3개 추가 + ContextSubMenu에 관리자 전용 서브메뉴 렌더링 추가로 해결. 수정 파일 2개, TypeScript 에러 0건, 빌드 성공, vite preview 서버 HTTP 200 정상 응답. ## 수정 내역 ### navigationConfig.ts - `DomainTabId` 타입에 `"admin"` 추가 - `SubMenuItem` 인터페이스에 `separatorBefore?: boolean` 필드 추가 - `info-settings` 탭 items에 마이페이지/개인설정/플랜&구독 3개 항목 추가 (구분선 포함) - `getActiveTabFromPath()` 함수에 `/admin/*` → "admin", `/mypage`/`/settings`/`/pricing` → "info-settings" 명시적 매핑 추가 (루프 전 우선 처리) ### ContextSubMenu.tsx - `adminMenuItems` import 추가 - `activeTab === "admin"` 분기: adminMenuItems 11개로 별도 사이드바 렌더링 - `tab.items.slice(0, 5)` 제거 → 전체 items 렌더링 - `separatorBefore` 플래그 기반 구분선 렌더링 추가 ### TopNavBar.tsx - 변경 불필요: `activeTab === "admin"`이면 어떤 탭도 하이라이트 안 됨 (기존 로직 호환) ## 발견 이슈 및 해결 ### 자체 해결 **발견/해결 이슈 4건** 1. **CRM `/mypage#namecard` 우선 매칭 버그** — `/mypage` 경로가 CRM 탭의 디지털 명함(`/mypage#namecard`) 항목과 먼저 매칭되어 여전히 CRM으로 폴백됨. `getActiveTabFromPath()` 루프 전에 `/mypage`, `/settings`, `/pricing` 명시적 체크 추가로 해결 (navigationConfig.ts:88-90) 2. **ContextSubMenu slice(0,5) 제한** — 기존 코드가 5개 항목만 렌더링하여 추가된 3개 항목이 표시 안 됨. `slice(0,5)` 제거하여 전체 items 렌더링으로 수정 (ContextSubMenu.tsx:72) 3. **React fragment key 이슈** — separator + item을 fragment로 감싸면 key 경고 발생. div 래퍼로 변경 (ContextSubMenu.tsx:77,98) 4. **MobileBottomNav drawer slice(0,5)** — 미해결: 모바일 드로어에서도 5개 제한이 있으나, 모바일에서는 좌측 서브메뉴가 없고 유저 드롭다운에서 직접 접근하므로 현재 작업 범위 외. 추후 모바일 UX 개선 시 반영 권장.