-
Notifications
You must be signed in to change notification settings - Fork 0
[Fix/#97] 비로그인 시 추천 카드 처리 #98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.