fix: (QA/4) QA 반영 - #435
Conversation
|
Warning Review limit reached
Next review available in: 39 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. 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: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
Walkthrough프로필 서버 값을 화면 선택값으로 정규화하고 소개 입력 helper 표시를 중립화했습니다. 요청 매칭 그룹원 상세 조회 API와 쿼리를 추가했으며, 매칭 수신 화면에서 상세 통계와 오류 상태를 함께 처리합니다. 완료 상태 매핑과 아바타 스타일도 변경했습니다. Changes프로필 입력 상태
매칭 멤버 상세 흐름
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ 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 |
|
MATEBALL-STORYBOOK |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/pages/edit-profile/edit-profile.tsx (1)
156-161: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
teamAllowed를 서버 값으로 다시 매핑해야 합니다지금은 화면 표시용 값인
'같은 팀 메이트'를 그대로 전송합니다. 이 필드는 초기 로딩에서 서버의'같은 팀 메이트와 보고 싶어요'를 변환해 쓴 값이므로, 저장할 때도 서버 값으로 역변환해서 보내야 합니다.🤖 Prompt for 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. In `@src/pages/edit-profile/edit-profile.tsx` around lines 156 - 161, Update the editMatchCondition call in the profile edit flow so teamAllowed converts the display value back to the server’s expected value before submission. Map the UI value “같은 팀 메이트” to “같은 팀 메이트와 보고 싶어요”, while preserving the existing null behavior for NO_TEAM_OPTION or an absent mateTeamValue.
🧹 Nitpick comments (2)
src/shared/components/input/input.tsx (1)
52-52: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value
isHelperNeutral조건 평가 최적화
iconColorClass를 계산할 때 이미isHelperNeutral조건을 확인하고 있으나, 하단className에서!isHelperNeutral조건을 다시 중복 검사하고 있습니다. 불필요한 연산을 줄이고 코드를 직관적으로 개선하기 위해, 로직을 단순화하는 것을 제안합니다.♻️ 리팩토링 제안
isHelperNeutral이true일 때는 아이콘 컬러 클래스를undefined로 설정하고, 렌더링 시 중복 검사를 제거합니다.- const iconColorClass = isHelperNeutral ? iconColorMap.default : iconColorMap[inputState]; + const iconColorClass = isHelperNeutral ? undefined : iconColorMap[inputState];<div className="flex-row gap-[0.8rem]"> <Icon name={helperIconName} size={2} - className={cn('text-gray-600', !isHelperNeutral && iconColorClass)} + className={cn('text-gray-600', iconColorClass)} /> <div className="flex w-full justify-between"> - <p className={cn('cap_14_m text-gray-600', !isHelperNeutral && iconColorClass)}> + <p className={cn('cap_14_m text-gray-600', iconColorClass)}> {messageToShow} </p>Also applies to: 108-116
🤖 Prompt for 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. In `@src/shared/components/input/input.tsx` at line 52, Update the icon color calculation using iconColorClass so isHelperNeutral yields undefined instead of iconColorMap.default, then simplify the related className logic in the input rendering block to use iconColorClass directly without rechecking !isHelperNeutral. Preserve the existing state-based color mapping for non-neutral helper states.src/pages/edit-profile/edit-profile.tsx (1)
103-104: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value컴포넌트 외부로 함수 분리
normalizeMateTeam함수는 컴포넌트의 상태나 props에 의존하지 않으므로, 렌더링될 때마다 불필요하게 재생성되지 않도록 컴포넌트 외부로 분리하는 것을 권장합니다.♻️ 리팩토링 제안
+ const normalizeMateTeam = (value?: string | null) => + value === SAME_TEAM_SERVER_VALUE ? PROFILE_SYNC_MATE[0] : (value ?? ''); + const EditProfile = () => { ... - const normalizeMateTeam = (value?: string | null) => - value === SAME_TEAM_SERVER_VALUE ? PROFILE_SYNC_MATE[0] : (value ?? '');🤖 Prompt for 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. In `@src/pages/edit-profile/edit-profile.tsx` around lines 103 - 104, Move the normalizeMateTeam helper outside the component so it is defined once instead of recreated on each render. Keep its existing SAME_TEAM_SERVER_VALUE mapping and nullish fallback behavior unchanged, and update the component to continue using the extracted function.
🤖 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/result/components/matching-receive-view.tsx`:
- Around line 25-40: Handle the isLoading states from both useQuery calls before
evaluating the !mate error condition; while either matchDetailData or
memberDetailData is loading, return the existing loading view or null. Keep
enabled: false behavior safe by using isLoading rather than isPending, and
preserve the current ErrorView handling after loading completes.
In `@src/shared/apis/match/match-queries.ts`:
- Around line 316-330: Update the response parsing condition in the match query
to handle API response objects even when the optional data property is absent.
Use an Array.isArray-based guard with res?.data, return the contained array when
valid, and fall back to an empty results array for object responses without
data; preserve the existing direct array handling for matchMember[] responses.
In `@src/shared/components/card/match-card/components/members-bottom-sheet.tsx`:
- Line 42: Update the member avatar <img> in the members bottom sheet to include
the w-full sizing class alongside h-full, ensuring it fills the parent’s square
container and renders as a circle while preserving object-cover.
---
Outside diff comments:
In `@src/pages/edit-profile/edit-profile.tsx`:
- Around line 156-161: Update the editMatchCondition call in the profile edit
flow so teamAllowed converts the display value back to the server’s expected
value before submission. Map the UI value “같은 팀 메이트” to “같은 팀 메이트와 보고 싶어요”,
while preserving the existing null behavior for NO_TEAM_OPTION or an absent
mateTeamValue.
---
Nitpick comments:
In `@src/pages/edit-profile/edit-profile.tsx`:
- Around line 103-104: Move the normalizeMateTeam helper outside the component
so it is defined once instead of recreated on each render. Keep its existing
SAME_TEAM_SERVER_VALUE mapping and nullish fallback behavior unchanged, and
update the component to continue using the extracted function.
In `@src/shared/components/input/input.tsx`:
- Line 52: Update the icon color calculation using iconColorClass so
isHelperNeutral yields undefined instead of iconColorMap.default, then simplify
the related className logic in the input rendering block to use iconColorClass
directly without rechecking !isHelperNeutral. Preserve the existing state-based
color mapping for non-neutral helper states.
🪄 Autofix (Beta)
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: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 28da9a6e-a36a-4d4d-9b93-36225108477e
📒 Files selected for processing (11)
src/pages/edit-profile/constants/edit-profile.tssrc/pages/edit-profile/edit-profile.tsxsrc/pages/match/member-detail/member-detail.tsxsrc/pages/result/components/matching-receive-view.tsxsrc/shared/apis/match/match-queries.tssrc/shared/components/card/match-card/components/members-bottom-sheet.tsxsrc/shared/components/card/match-card/utils/get-match-current-step.tssrc/shared/components/input/input.tsxsrc/shared/constants/api.tssrc/shared/constants/query-key.tssrc/shared/types/match-types.ts
Deploying mateball-client with
|
| Latest commit: |
a7f582b
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://cda0aa82.mateball-client.pages.dev |
| Branch Preview URL: | https://fix--434-qa.mateball-client.pages.dev |
#️⃣ Related Issue
Closes #434
💎 PR Point
서버 문의 중인 이슈 제외하고 전부 반영 완료
📸 Screenshot
Summary by CodeRabbit