feat: 보관함 안 읽은 뉴스레터 필터 추가#295
Conversation
jaeyoung-kwon
left a comment
There was a problem hiding this comment.
🤖 PR Review
✅ 확실하게 수정이 필요한 항목을 찾지 못했습니다.
보관함 안 읽은 뉴스레터 필터와 모바일 검색/컨트롤 UX 개편, 진행 바 캡션 높이 계산 수정, 플로팅 버튼 portal 렌더링을 검토했습니다. unreadOnly가 API·라우트 검색 스키마·쿼리 키·리셋 로직까지 일관되게 배선되어 있고, useSearchParamState의 page/newsletterId와 동일한 boolean 직렬화 패턴을 따르고 있어 문제가 없습니다. ProgressBar의 hasCaption 분기는 caption 미전달 시(대부분의 다른 사용처) 기존 동작을 그대로 유지해 회귀 위험이 낮고, caption이 있는 곳(PetCard 등)에서는 기존에 있던 캡션 오버플로 버그를 함께 고칩니다. FloatingActionButton의 createPortal 전환은 버튼/메뉴 모두 position: fixed라 레이아웃 컨텍스트 변화로 인한 위치 이슈가 없고, useClickOutsideRef는 DOM 포함 관계로 동작해 portal 여부와 무관하게 정상 동작합니다. SearchInput에 ref 전달은 React 19의 ref-as-prop 방식으로 정상적으로 실제 input DOM에 연결되어 모바일 검색 오토포커스도 기대대로 동작할 것으로 보입니다. production 이슈·보안·데이터 손상·플로우 차단에 해당하는 항목은 발견하지 못했습니다.
🚨 0 Critical ·
📋 검증 과정
- Claude structured review 결과 중 확신도가 있는 항목만 정리했습니다.
- Critical/Major는 inline comment로 게시하고, Minor는 참고 항목으로 summary에 포함합니다.
- 자동 생성된 OpenAPI 타입 선언 파일과 lock 파일은 리뷰 대상에서 제외합니다.
🤖 Claude PR Review
Generated by Claude Code
| export const Container = styled.div<{ hasCaption: boolean }>` | ||
| width: 100%; | ||
| height: 10px; | ||
| height: ${({ hasCaption }) => (hasCaption ? 'auto' : '10px')}; |
There was a problem hiding this comment.
ProgressBar 높이가 10px로 고정되어 있어서 수정했어요.
의도된 코드라면 알려주세요!
📌 What
❓ Why
🔧 How
unreadOnly파라미터를 연결하고 URL 검색 파라미터와 동기화search파라미터 유지👀 Review Point