Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Walkthrough권장 용어 카드에 클라이언트 네비게이션을 추가하고 로딩 상태를 지원하기 위해 Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
src/components/RecommendedTermCard.tsx (1)
1-61: 카드 클릭 네비게이션은 적절하지만, 접근성·재사용성 측면에서 소폭 개선 여지가 있습니다.
- 현재
div에onClick만 걸려 있어 키보드 포커스로는 접근이 어렵습니다.button/a또는role="button"+tabIndex={0}+onKeyDown등을 통해 키보드 사용자도 추천 카드를 탐색할 수 있게 하는 걸 고려해 보시면 좋겠습니다.TermCardProps가RecommendedTerm타입과 거의 동일하니, 가능하다면type TermCardProps = RecommendedTerm;형태로 재사용하면 타입 중복을 줄이고 데이터 구조 변경 시 추적이 더 쉬워질 것 같습니다.src/components/search/RecommendedTermsSection.tsx (1)
47-66: 리스트 렌더링 시 key와 ‘더보기’ 버튼 노출 조건을 조금 더 다듬을 수 있습니다.
displayedRecommendedTerms.map에서key={index}를 사용하고 있는데, 추천 목록이 바뀌는 경우(카테고리 변경 등) DOM 재사용이 예상과 다를 수 있습니다.key={term.slug}처럼 고유 식별자를 사용하면 더 안전합니다.- 추천 용어 개수가 3개 이하일 때도 항상 ‘더보기’ 버튼이 노출될 수 있습니다.
!isLoading && recommendedTerms.length > 3조건으로 감싸면 UX가 조금 더 자연스러울 것 같습니다.Also applies to: 68-82
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
src/components/RecommendedTermCard.tsx(3 hunks)src/components/RecommendedTermCardSkeleton.tsx(1 hunks)src/components/search/RecommendedTermsSection.tsx(3 hunks)src/lib/recommendations.ts(3 hunks)
🧰 Additional context used
🧬 Code graph analysis (3)
src/lib/recommendations.ts (3)
src/app/terms/[slug]/page.tsx (3)
TermDetailPage(13-108)term(74-77)loadTerm(28-49)src/types/terms.ts (1)
TermIndexItem(6-16)src/lib/terms.ts (1)
getTermBySlug(83-93)
src/components/search/RecommendedTermsSection.tsx (4)
src/contexts/AuthContext.tsx (1)
useAuth(269-275)src/lib/recommendations.ts (2)
RecommendedTerm(41-47)getRecommendedTerms(52-89)src/components/RecommendedTermCardSkeleton.tsx (1)
RecommendedTermCardSkeleton(1-22)src/components/RecommendedTermCard.tsx (1)
RecommendedTermCard(40-93)
src/components/RecommendedTermCard.tsx (1)
src/components/icons/ic_category_all.tsx (1)
CategoryAllIcon(3-25)
🔇 Additional comments (3)
src/components/RecommendedTermCardSkeleton.tsx (1)
1-21: 추천 용어 스켈레톤 레이아웃 적절합니다.실제 카드와 폭·모양이 잘 맞춰져 있어서 로딩 전환 시 레이아웃 점프 없이 자연스럽게 동작할 것 같습니다. 별도의 로직이나 상태가 없어 유지보수 측면에서도 단순해 보여요.
src/lib/recommendations.ts (1)
41-47: slug 필드 전파가 일관되게 잘 연결되었습니다.
RecommendedTerm인터페이스에slug를 추가하고, 용어 수 부족 분기와 셔플 분기 양쪽 모두에서t.slug를 매핑해 주셔서 데이터 레이어–UI(카드/섹션) 간 계약이 깔끔하게 맞습니다. 비로그인/로그인 모두에서 동일한 구조로 동작할 수 있어 유지보수하기 좋아 보입니다.Also applies to: 63-69, 78-84
src/components/search/RecommendedTermsSection.tsx (1)
14-36: Auth 로딩 상태와 추천어 로딩 상태 분리가 목적에 잘 맞습니다.
loading이 끝날 때까지 조기return후,userData?.selectedCategory ?? "all"로 카테고리를 결정해서 비로그인 사용자의 경우에도"all"기준 추천을 보여주도록 한 구조가 이슈(#97)의 요구사항과 잘 맞습니다.- 로컬
isLoading으로 추천어 fetch 상태만 분리해서 skeleton 노출을 제어한 것도 UI/상태 관리 측면에서 깔끔합니다.
✨ 작업 개요
비로그인 시 추천 카드 처리
📌 관련 이슈
✅ 작업 내용
Summary by CodeRabbit
릴리스 노트
✏️ Tip: You can customize this high-level summary in your review settings.