[FIX] 소상공인 홍보 태그칩/좋아요 UI 복원 및 추가 - #275
Conversation
- ReviewCourse에 추가된 courseType을 매퍼에서 그대로 넘김 - 라우트 판별용 코스 상세 선조회(useNavigateToCourseDetail) 제거 - 이동수단 라벨 prop 이름을 transport로 바로잡아 코스 타입과 구분
develop의 찜 목록이 useNavigateToCourseDetail을 쓰기 시작했다. LikedResponse에는 courseType이 없어 선조회가 필요하다. 후기는 응답에 courseType이 있어 계속 buildCourseDetailPath로 바로 이동한다.
- 코스별 후기 응답이 imageUrls에서 images(imageKey 포함)로 바뀐 것을 반영 - 코스 상세와 후기 전체보기에서 막아 뒀던 수정 진입을 연다 - 작성자 메타에 성별을 붙여 20대 여 형태로 표시
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 14 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough로컬 사업장 데이터에 작성자 아바타, 태그, 좋아요 상태를 추가했습니다. 카드에 좋아요 버튼과 태그 칩을 표시합니다. 페이지는 인증 상태에 따라 좋아요 상태를 갱신하거나 로그인 모달을 엽니다. 회원가입 화면은 Kakao 및 Naver OAuth 로그인을 처리합니다. Changes로컬 사업장 좋아요 및 카드 데이터
소셜 회원가입 OAuth
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant SignupStart
participant KakaoLogin
participant NaverLogin
participant OAuthProvider
SignupStart->>KakaoLogin: Kakao 로그인 요청
KakaoLogin->>OAuthProvider: 웹 OAuth authorize 호출
SignupStart->>NaverLogin: Naver 로그인 요청
NaverLogin->>OAuthProvider: OAuth 로그인 요청
OAuthProvider-->>SignupStart: 결과 반환
SignupStart-->>SignupStart: 로딩 상태 해제 및 오류 표시
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/pages/local-business/components/BusinessGridCard.tsx`:
- Around line 81-95: 분리된 카드 이동 컨트롤과 좋아요 버튼이 중첩되지 않도록 수정하고, 좋아요 버튼에 현재 상태를 반영하는
aria-pressed를 추가하세요.
src/pages/local-business/components/BusinessGridCard.tsx:81-95의 카드 및 좋아요 컨트롤에서
aria-pressed={business.liked}를 설정하세요.
src/components/common/PromotionCard.tsx:135-150에서도 동일하게 컨트롤을 분리하고
aria-pressed={liked}를 설정하세요.
- Line 12: BusinessGridCard의 CARD_HEIGHT 상수를 현재 222px에서 최소 225px로 조정하세요. 이미지 영역
115px과 콘텐츠 고정 영역 110px이 모두 포함되고 태그 행 하단이 잘리지 않도록 기존 카드 레이아웃과 overflow 동작은 유지하세요.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 6f839510-30f2-443f-9fe1-a4b5a6148e95
📒 Files selected for processing (12)
src/components/common/PromotionCard.tsxsrc/hooks/useKakaoLogin.tssrc/pages/auth/signup/components/SignupStart.tsxsrc/pages/local-business/components/BusinessGrid.tsxsrc/pages/local-business/components/BusinessGridCard.tsxsrc/pages/local-business/components/BusinessList.tsxsrc/pages/local-business/components/BusinessListCard.tsxsrc/pages/local-business/index.tsxsrc/pages/local-business/mappers/businessPromotionMapper.tssrc/pages/local-business/types.tssrc/types/businessPromotion.type.tssrc/vite-env.d.ts
📜 Review details
🧰 Additional context used
🧠 Learnings (5)
📚 Learning: 2026-07-26T17:09:23.387Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/course-basic-info/components/CompanionSelector.tsx:82-90
Timestamp: 2026-07-26T17:09:23.387Z
Learning: 이 프로젝트의 반응형 스케일 정책에서는 텍스트(폰트) 크기를 설계 기준 값에 전역 `scale`을 곱해 비율대로 스케일하세요. `12px`, `14px`처럼 특정 최소 하한을 강제로 적용하거나(클램프/바닥값) 임의의 픽셀 값으로 제한하지 마세요. 즉, 기준값(디자인 스펙) × `scale` 방식으로 계산해 비율이 유지되도록 구현합니다.
Applied to files:
src/pages/local-business/index.tsxsrc/components/common/PromotionCard.tsxsrc/pages/auth/signup/components/SignupStart.tsxsrc/pages/local-business/components/BusinessList.tsxsrc/pages/local-business/components/BusinessGridCard.tsxsrc/pages/local-business/components/BusinessGrid.tsxsrc/pages/local-business/components/BusinessListCard.tsx
📚 Learning: 2026-08-03T09:41:11.931Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 188
File: src/pages/detail/components/CourseDetailLayout.tsx:202-205
Timestamp: 2026-08-03T09:41:11.931Z
Learning: When implementing the shared back-navigation UI component in yeogido/frontend, manage all UI dimensions, including positional offsets, according to the project’s global `scale` policy so the component remains visually consistent across screens.
Applied to files:
src/pages/local-business/index.tsxsrc/components/common/PromotionCard.tsxsrc/pages/auth/signup/components/SignupStart.tsxsrc/pages/local-business/components/BusinessList.tsxsrc/pages/local-business/components/BusinessGridCard.tsxsrc/pages/local-business/components/BusinessGrid.tsxsrc/pages/local-business/components/BusinessListCard.tsx
📚 Learning: 2026-07-26T17:09:27.685Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/course-basic-info/components/TransportSelector.tsx:84-91
Timestamp: 2026-07-26T17:09:27.685Z
Learning: In this project’s 390px-based continuous responsive scaling, do not apply an artificial minimum lower bound to text sizes (e.g., avoid clamping via Math.max/min-font-size patterns). Instead, compute typography using proportional ratio scaling: render font sizes as `VALUE * scale` (for example, `DESCRIPTION_FONT_SIZE * scale`). During review, flag any code that enforces a hard minimum text size that breaks the intended proportional scaling.
Applied to files:
src/pages/local-business/index.tsxsrc/components/common/PromotionCard.tsxsrc/pages/auth/signup/components/SignupStart.tsxsrc/pages/local-business/components/BusinessList.tsxsrc/pages/local-business/components/BusinessGridCard.tsxsrc/pages/local-business/components/BusinessGrid.tsxsrc/pages/local-business/components/BusinessListCard.tsx
📚 Learning: 2026-07-26T17:09:32.991Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/tag-selection/components/KeywordSelectionSection.tsx:51-56
Timestamp: 2026-07-26T17:09:32.991Z
Learning: When implementing responsive scaling in this project, prefer direct proportional calculations (e.g., using `VALUE * scale`) without applying artificial minimum lower bounds (clamps) to text sizes or other visual dimensions. Only introduce a lower bound when there is an explicitly documented exception; the primary allowed example is enforcing a 44px minimum touch target for interactive elements. In review, flag new/minimum clamps for text/visual dimensions unless they match an explicitly documented exception.
Applied to files:
src/pages/local-business/index.tsxsrc/components/common/PromotionCard.tsxsrc/pages/auth/signup/components/SignupStart.tsxsrc/pages/local-business/components/BusinessList.tsxsrc/pages/local-business/components/BusinessGridCard.tsxsrc/pages/local-business/components/BusinessGrid.tsxsrc/pages/local-business/components/BusinessListCard.tsx
📚 Learning: 2026-07-26T17:09:40.303Z
Learnt from: KJun-2
Repo: yeogido/frontend PR: 125
File: src/pages/local-recommendation/tag-selection/components/RepresentativePhotoSection.tsx:107-122
Timestamp: 2026-07-26T17:09:40.303Z
Learning: yeogido/frontend의 반응형 스케일 정책에 맞춰, 텍스트를 포함한 UI 치수는 (디자인 기준값) × 전역 `scale`로 “연속적으로” 계산하고, 12px·14px 같은 최소 폰트/사이즈 하한(floor) 클램프를 적용하지 않는다. `scaleValue`를 쓰더라도 텍스트에 임의의 minimum floor를 추가하거나 `Math.max(value, 12/14)` 같은 보정을 넣지 말 것.
Applied to files:
src/pages/local-business/index.tsxsrc/components/common/PromotionCard.tsxsrc/pages/auth/signup/components/SignupStart.tsxsrc/pages/local-business/components/BusinessList.tsxsrc/pages/local-business/components/BusinessGridCard.tsxsrc/pages/local-business/components/BusinessGrid.tsxsrc/pages/local-business/components/BusinessListCard.tsx
🔇 Additional comments (15)
src/vite-env.d.ts (1)
81-81: LGTM!src/hooks/useKakaoLogin.ts (1)
37-46: LGTM!src/pages/auth/signup/components/SignupStart.tsx (4)
1-1: LGTM!Also applies to: 10-11, 44-50
60-92: LGTM!
167-171: LGTM!Also applies to: 191-196, 216-216
229-242: LGTM!src/types/businessPromotion.type.ts (1)
32-32: LGTM!src/pages/local-business/types.ts (1)
1-1: LGTM!Also applies to: 16-20
src/pages/local-business/mappers/businessPromotionMapper.ts (1)
9-9: LGTM!Also applies to: 97-101
src/pages/local-business/components/BusinessGridCard.tsx (1)
1-11: LGTM!Also applies to: 13-16, 33-50, 147-164
src/components/common/PromotionCard.tsx (1)
1-12: LGTM!Also applies to: 44-46, 58-60, 127-133
src/pages/local-business/components/BusinessListCard.tsx (1)
8-27: LGTM!src/pages/local-business/components/BusinessGrid.tsx (1)
7-15: LGTM!Also applies to: 29-31
src/pages/local-business/components/BusinessList.tsx (1)
7-26: LGTM!src/pages/local-business/index.tsx (1)
8-9: LGTM!Also applies to: 38-39, 67-96, 172-182

작업 내용
변경 화면
확인 방법
체크리스트
pnpm build통과pnpm lint통과스크린샷
참고 사항
관련 이슈
Closes #273
Summary by CodeRabbit