MSG-517 feat: [웹] 행사 위치 개요 — 개요 패널·시청 인원 30초 폴링+heartbeat·격자 클릭 소속 행사 표시 - #111
Conversation
공유 파일 충돌 해소: event-room-store는 강조(517)+위치 선택·back(518) 합집합 (back의 방 닫기가 강조도 리셋), EventRoomBodySwitch는 4모드 전부 실 본문 완성. merge에서 드러난 교차 exact 중복 1건 단일화 — locationTypeLabel(517) 제거, eventLocationTypeLabel(518) 재사용. 518·519의 overview 자리표시 단정 2건은 517이 교체한 실 본문(개요) 기준으로 갱신. 게이트 6종 통과(web 1645·mobile 982). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FZ5R7MjosuzZu78Su5UPDB
|
Claude finished @gyuhochoime's task in 3m 53s —— View job 🔍 코드 리뷰 완료작업 목록
총평전체적으로 완성도가 높습니다. model 레이어(순수 함수·훅)는 test-first로 엣지 케이스(0 vs null 시청 인원, operatingHours null, 격자 중복 membership, KST 오프셋 경계 등)를 꼼꼼히 다루고 있고, RN 재사용 경계·FSD 규칙을 잘 지켰습니다. 특히 PR 본문에서 codex 리뷰의 P1 지적 2건("비소속 셀 클릭 삼킴", "missionChipActive 우회")을 오탐으로 판정한 근거를 직접 코드 추적으로 검증했는데, 실제로 두 주장 모두 코드상 도달 불가능한 전제(행사방 열림 중
버그성 발견 사항은 없었고, 🟢 사소한 제안 2건만 인라인으로 남겼습니다. 🟢 사소한 제안 (인라인 코멘트 참고)
확인 못한 부분
|
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
|
Claude finished @gyuhochoime's task in 4m 20s —— View job 🔍 코드 리뷰 완료작업 목록
요약이전 리뷰 지적 2건(archive 스모크 |
| () => eventGridIdSet(eventLocations), | ||
| [eventLocations], | ||
| ); | ||
| const handleCellClick = useMemo( |
There was a problem hiding this comment.
🟢 사소한 관찰 (추측 — 브라우저 실측은 안 했습니다) — 행사방이 막 열린 직후, useEventLocationsQuery(179행)가 아직 로딩 중이면 eventGridIds가 빈 Set입니다. 이 순간 그 행사 위치에 속한 점령 격자를 클릭하면 buildCellClickHandler(grid-click-routing.ts:33-41)가 eventGrid=false로 판정해 openGridDetail(격자 상세)로 빠지고, 위치 데이터가 로드된 뒤에야 정상적으로 sectionHandler(위치 강조)로 위임됩니다.
캐시가 개요 패널·use-event-overlay-publish와 공유되므로(use-event-locations-query.ts 주석) 창은 보통 매우 짧고(첫 조회 왕복 1회), 로딩 스켈레톤이 개요 패널에도 함께 뜨는 시점이라 실사용 영향은 제한적으로 보입니다. 블로킹 이슈는 아니고, 재현 빈도가 눈에 띄면 eventGridIds가 아직 비어 있고 조회가 pending인 동안은 이 예외를 보류하는 방안 정도를 고려해볼 만합니다.
🔍 코드 리뷰 완료 (재푸시 반영, e5bec05 기준)작업 목록
총평이전 푸시(직전 리뷰) 이후 커밋
전반적으로 model 레이어(순수 함수·훅)가 test-first로 엣지 케이스를 꼼꼼히 커버합니다: 시청 인원 0 vs null, 격자 클릭 라우팅( 버그성 발견 사항은 없었습니다. 🟢 사소한 관찰 1건만 인라인으로 남겼습니다. 🟢 사소한 관찰 (인라인 코멘트 참고, 추측)
확인 못한 부분
|
🎫 관련 티켓
📌 작업 내용
행사 웨이브 2 (MSG-518·519와 병렬 진행, 둘 다 이 PR 이전에 머지됨 — 본 브랜치에 origin/develop 머지 완료).
EventRoomBodySwitchoverview 분기(case 2줄)로EventRoomOverview연결 — 행사명·기간(7.17–8.9KST 파생)·위치 카드(유형 라벨·운영시간·영상 N 배지·Thumbnail 폴백, 표시 전용)·안내 배너. 셸 무개조.getViewerCountrefetchInterval 30s,0명 보는 중표시, null·실패는 라벨만 생략·다음 주기 자연 재시도.X-Viewer-Session(sessionStorage UUID —viewerSessionStorage). 실서버 익명 curl 실측: 헤더 有 200 / 無 400.grid-click-routing예외 1개).use-home-overlay-publish에suspended4줄 — 오버레이 스토어 이중 게시 clobber 구조 차단.semantic.primary전달 — MapCanvas가 자체 fillOpacity 0.4를 곱하는 계약이라 이쪽이 Figma 정본(#06c 저투명)과 렌더 일치 (DECISIONS 기록).병렬 규칙 준수:
pnpm api:generate미실행(생성물 diff 0), 공유 파일 최소 diff(event-room-store필드 1·스위치 case 2줄·라우팅 예외 1), MSG-518/519 소유 영역 미접촉 (검증자 grep 감사).develop 머지 커밋(7a75fae): 518·519 합류 —
event-room-store는 강조+위치 선택·back 합집합(back의 방 닫기가 강조도 리셋),EventRoomBodySwitch4모드 전부 실 본문 완성. merge에서 드러난 교차 exact 중복 1건 단일화(locationTypeLabel제거 → 518eventLocationTypeLabel재사용). 518·519의 "overview 자리표시" 스모크 단정 2건은 517이 교체한 실 본문 기준으로 갱신.codex 리뷰(push 전, 브랜치 스코프): P1 2건 지적 → 둘 다 오탐 판정 (코드 실측 근거):
canOpenDetail로 게시 셀만 반응 — 잃는 기존 동작이 없음. 비소속 점령 셀은 셸 점령 분기로 격자 상세(브라우저 실측 통과).✅ 체크리스트
pnpm lint/pnpm typecheck/pnpm --filter web test run통과🔍 검증 요약
자동 검증 (풀 게이트 6종 — 머지 후 재실측): vitest web 1645/1645 + mobile 982/982 · typecheck · lint(oxlint) · format:check · check:duplication · openapi 드리프트 없음 — 전부 통과.
event-room-modediff 0, 기존 테스트 무변경 GREEN통과 11 / 실패 0 / 확인불가 1(실데이터 경로 부기) · 콘솔 에러 0 · 탭 가시성·rAF(121fps) 전제 준수
💡 추가 논의할 사항
🤖 Generated with Claude Code
https://claude.ai/code/session_01FZ5R7MjosuzZu78Su5UPDB