From 09ddc47103534252ff2ac9247733b8dac8cdd5e8 Mon Sep 17 00:00:00 2001 From: joungmin Date: Mon, 27 Jul 2026 14:02:34 +0900 Subject: [PATCH] =?UTF-8?q?[Developer]=20#533=20=EC=A0=84=EC=B2=B4?= =?UTF-8?q?=EB=B3=B4=EA=B8=B0/=EB=82=B4=EC=9C=84=EC=B9=98=20=ED=86=A0?= =?UTF-8?q?=EA=B8=80=20=EC=96=B8=EA=B8=89=EC=88=98=20=ED=95=84=ED=84=B0=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=ED=99=94=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - page.tsx: 전역 '전체보기' 노출 조건에 minMentions > 0 추가, onClick에 setMinMentions(0) 추가 - 내위치 토글 ON 초기화 목록에도 setMinMentions(0) 추가 (상호배타 일관성) - 설계서 §7 필터 리셋 일관성 명시 - tsc/jest(6 suites, 32 tests) 통과 Refs #533 Co-Authored-By: Claude Sonnet 5 --- CHANGELOG.md | 9 +++++++++ docs/design/533-min-mentions-filter/README.md | 5 ++++- frontend/src/app/page.tsx | 4 +++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79c074e..fd18142 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,15 @@ ## 2026-07-27 +### 🛠 [Developer] #533 Reviewer 반려 수정 — "전체보기" 버튼 언급수 필터 초기화 +- 파일: `frontend/src/app/page.tsx` + - 전역 "전체보기" 버튼 노출 조건에 `|| minMentions > 0` 추가 → 언급수 필터만 켜져 있어도 버튼 노출 + - onClick 초기화 목록에 `setMinMentions(0)` 추가 → 다른 필터와 함께 켠 상태에서도 전체 초기화됨 + - "내위치" 토글 ON 초기화 목록에도 `setMinMentions(0)` 추가(내위치 ↔ 언급수 상호배타 일관성) +- 설계서 동기화: `docs/design/533-min-mentions-filter/README.md` §7에 "필터 리셋 일관성" 명시 +- 검증: `tsc --noEmit` 통과, jest 6 suites / 32 tests 통과. 코어 필터 로직은 이전과 동일(변경 없음) +- 03-Developer → 06-Reviewer(재검토) + ### 🛑 [Reviewer] #533 반려 — 전역 "전체보기" 버튼이 언급수 필터를 초기화하지 않음 - 파일: `frontend/src/app/page.tsx:910`(노출 조건), `912-919`(onClick 초기화 목록) - 문제: 전역 필터 초기화 버튼("전체보기")의 노출 조건과 초기화 로직에 `minMentions`가 누락됨 diff --git a/docs/design/533-min-mentions-filter/README.md b/docs/design/533-min-mentions-filter/README.md index 8e6c08f..d77a9ad 100644 --- a/docs/design/533-min-mentions-filter/README.md +++ b/docs/design/533-min-mentions-filter/README.md @@ -30,7 +30,10 @@ ### 프론트 6. `lib/api.ts` — `Restaurant.video_count?: number | null`; `getRestaurants` 파라미터 `min_mentions?`(미래/서버필터용). -7. `app/page.tsx` — 필터 상태 `minMentions`(0/2/3) + `filteredRestaurants`에 `(r.video_count ?? 0) >= minMentions` 가드 + UI 컨트롤 + useMemo deps 추가. +7. `app/page.tsx` — 필터 상태 `minMentions`(0/2/3/5) + `filteredRestaurants`에 `(r.video_count ?? 0) >= minMentions` 가드 + UI 컨트롤 + useMemo deps 추가. + - **필터 리셋 일관성**: `minMentions`도 다른 필터(장르/가격/지역/채널)와 동일하게 취급. + - 전역 "전체보기" 버튼: 노출 조건에 `minMentions > 0` 포함, 클릭 시 `setMinMentions(0)`로 함께 초기화. + - "내위치" 토글 ON: 다른 필터 초기화 목록에 `setMinMentions(0)` 포함(내위치와 상호배타). ## 엣지케이스 - `video_count` 미산정(findById 등) → null. 클라 필터는 `?? 0`로 안전. diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 7c4e2eb..b50a078 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -907,7 +907,7 @@ export default function Home() { )} {/* 필터 전체 해제 */} - {(channelFilter || cuisineFilter || priceFilter || countryFilter) && ( + {(channelFilter || cuisineFilter || priceFilter || countryFilter || minMentions > 0) && (