UiSetSearchScreen props (세션 검색 탭)
화면 픽스처(앱 저장소):
src/react/ui/mobile/fixtures/SetSearchScreen.fixture.ts
메뉴(드로어)의 새 nav 탭 “세션 검색” — 종목을 고르면 그 종목의 세트 기록만 최신순 — 포맷은 기록 상세 E 훈련 목록(rc-feed/rc-fs)과 동일(세션 단위 아님). 화면: src/react/ui/mobile/screens/SetSearch.tsx
| prop | 형태 | 설명 |
|---|---|---|
catalog | [{ id, name, nameEn?, pr?: { value, unit? } }] | 전체 종목(기록 탭 검색과 동일 소스). 빈 검색어 = 전체 브라우즈, 필터링은 화면 로컬 |
selected | { id, name, nameEn?, logs, reviews?, loading? } | null | 하이드레이션 패턴(피드 friendProfile 동형): onPick 후 컨테이너가 공급 |
selected.logs | [{ id, date, isPR?, sets: [{ load, reps }] }] | 그 종목이 포함된 세션당 1항목 — 해당 종목 세트만. 최신순 정렬은 화면이 수행. 기록 상세 history[].records와 동형 |
selected.reviews | [{ date, text }] | 날짜 매칭 시 리뷰 말풍선 |
profile | { name, photo?, short? } | 말풍선 아바타 |
onPick(id) | 종목 선택 → selected 하이드레이션 | |
onClear() | 검색어 변경/지우기 → 선택 해제 | |
onOpenSession(record) | 피드 행 탭 = 세션 점프 (action pr.log.open 재사용) | |
onBack?() | 선택 시에만 백 버튼 렌더 — 탭 렌더시엔 생략(버튼 미표시) |
- 무한 스크롤 6개씩(기록 상세와 동일). 요약 행 = n회 훈련 · n세트 · 총 볼륨.
- 마커: 신규 action 0. hook 식별용 4종
menuSetSearch/menuSetSearchInput/menuSetSearchFeed/menuSetSearchBack— Codex 등록 필요. - 셸 통합(Codex): 드로어 nav 목록에 “세션 검색” 탭 추가(
dashboard.navoption value — 등록 필요) → 이 화면 라우팅 + catalog·selected 공급.