Skip to content

feat: 보관함 안 읽은 뉴스레터 필터 추가#295

Open
jaeyoung-kwon wants to merge 12 commits into
devfrom
feat/storage-unread-filter
Open

feat: 보관함 안 읽은 뉴스레터 필터 추가#295
jaeyoung-kwon wants to merge 12 commits into
devfrom
feat/storage-unread-filter

Conversation

@jaeyoung-kwon

@jaeyoung-kwon jaeyoung-kwon commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

📌 What

  • 보관함에서 안 읽은 뉴스레터만 조회할 수 있는 필터 추가
  • 모바일 보관함의 검색 및 목록 컨트롤 UX 개선
  • 보관함 사용량 캡션과 플로팅 버튼이 불필요한 공간을 만들던 문제 수정
image image

❓ Why

  • 읽지 않은 뉴스레터를 빠르게 찾아볼 수 있도록 목록 탐색 편의성을 높이기 위함
  • 모바일의 제한된 화면에서 검색창과 필터 컨트롤이 차지하는 공간을 줄이기 위함

🔧 How

  • 목록·검색 API 요청에 unreadOnly 파라미터를 연결하고 URL 검색 파라미터와 동기화
  • 모바일 검색을 돋보기 버튼으로 펼치는 방식으로 변경하고 검색어가 있을 때만 search 파라미터 유지
  • 모바일 컨트롤을 사용량·검색 행과 삭제·필터·정렬 행으로 재배치
  • 진행 바의 막대 높이와 캡션 높이를 분리해 전체 레이아웃 높이를 정상 계산
  • 플로팅 버튼을 portal로 렌더링해 카테고리 아래 빈 레이아웃 요소 제거

👀 Review Point

  • 안 읽은 뉴스레터 필터 활성화·해제 시 URL과 API 요청이 올바르게 변경되는지 확인
  • 모바일 검색 열기·닫기 및 검색어가 있는 URL 재진입 동작 확인
  • 모바일에서 사용량·검색과 삭제·필터·정렬 컨트롤 배치 확인
  • 공용 진행 바를 사용하는 기존 화면에서 막대 높이와 캡션 레이아웃에 회귀가 없는지 확인
  • 모바일 플로팅 바로 가기 메뉴의 열기·외부 클릭 닫기 동작 확인

@jaeyoung-kwon jaeyoung-kwon left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 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 · ⚠️ 0 Major · 📝 0 Minor

📋 검증 과정
  • 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')};

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ProgressBar 높이가 10px로 고정되어 있어서 수정했어요.
의도된 코드라면 알려주세요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant