Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 25 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: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (11)
Walkthrough
Changes월 범위 제한
Estimated code review effort: 2 (Simple) | ~15 minutes Mergeability Score: 🔵 Low · up to The month range restriction prevents reversed dates, but some empty pickers can initially open on a year where every month is unavailable when the other date is far in the past or future. The PR is mergeable with owner awareness and a follow-up to initialize the view within the valid date range. Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 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: 1
🤖 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/shared/ui/month_picker/MonthPicker.tsx`:
- Around line 98-101: Update the MonthPicker initialization and handleOpenChange
logic to derive the initial view year from minMonth or maxMonth when value is
empty, clamping the year to the allowed range instead of always using the
current year. Preserve the current-year behavior when it falls within the range,
and ensure the popover opens directly on a valid year.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: c9600e34-a2e0-4f72-934c-7d4206c340af
📒 Files selected for processing (7)
src/shared/ui/month_picker/MonthPicker.tsxsrc/views/experiences_detail/ui/ExperienceDetailPanel.tsxsrc/views/experiences_detail/ui/ProjectInfo.tsxsrc/views/mypage/ui/profile/CareerSection.tsxsrc/views/mypage/ui/profile/EducationSection.tsxsrc/views/onboarding/ui/ResumeFieldInput.tsxsrc/views/resume_edit/ui/form/FormPeriodPicker.tsx
| const cellMonth = dayjs(`${viewYear}-${String(monthIndex + 1).padStart(2, '0')}-01`) | ||
| const isSelected = selected?.year() === viewYear && selected?.month() === monthIndex | ||
| const isCurrent = today.year() === viewYear && today.month() === monthIndex | ||
| const isOutOfRange = (Boolean(minMonth) && cellMonth.isBefore(minMonth, 'month')) || (Boolean(maxMonth) && cellMonth.isAfter(maxMonth, 'month')) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
범위 안의 연도로 팝오버를 초기화하세요.
value가 비어 있고 반대쪽 월이 과거 또는 미래에 있으면 기존 viewYear 초기화가 현재 연도를 사용합니다. 그러면 현재 연도의 12개 월이 모두 isOutOfRange가 됩니다. 사용자는 유효한 연도까지 여러 번 이동해야 합니다. 초기화와 handleOpenChange 모두 minMonth 또는 maxMonth를 사용해 연도를 허용 범위 안으로 보정하세요.
수정 방향
- const [viewYear, setViewYear] = useState(() => (selected ?? today).year())
+ const fallbackMonth = minMonth ?? maxMonth ?? today
+ const [viewYear, setViewYear] = useState(() => (selected ?? fallbackMonth).year())
- if (next) setViewYear((parseMonth(value) ?? today).year())
+ if (next) setViewYear((parseMonth(value) ?? fallbackMonth).year())🤖 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/ui/month_picker/MonthPicker.tsx` around lines 98 - 101, Update the
MonthPicker initialization and handleOpenChange logic to derive the initial view
year from minMonth or maxMonth when value is empty, clamping the year to the
allowed range instead of always using the current year. Preserve the
current-year behavior when it falls within the range, and ensure the popover
opens directly on a valid year.
leeleeleeleejun
left a comment
There was a problem hiding this comment.
고생하셨습니다!
현재 기간 컴포넌트가 동일하게 3번 이상 반복되고
컴포넌트가 변경되면 모든 파일이 동일하게 변경되는데
PeriodPicker 컴포넌트로 만드는시는 건 어떠신가요!
좋습니당 |
|
넵 좋습니다! 반영해서 올리겠습니다 |
| interface MonthRangePickerProps { | ||
| start: string | null | ||
| end: string | null | ||
| onChangeStart: (value: string | null) => void | ||
| onChangeEnd: (value: string | null) => void | ||
| startPlaceholder?: string | ||
| endPlaceholder?: string | ||
| label?: string | ||
| className?: string | ||
| separatorClassName?: string | ||
| } |
There was a problem hiding this comment.
input, textarea와 동일하게 label을 입력하면 상단에 노출됩니다.
| return <CoreSkillSection title={displayText} items={payloadsOf(items, 'coreSkill')} /> | ||
| case 'CAREER': | ||
| return <CareerSection title={`${displayText} / 활동`} items={payloadsOf(items, 'career')} /> | ||
| return <CareerSection title={displayText} items={payloadsOf(items, 'career')} /> |
There was a problem hiding this comment.
오탈자 수정
(기존) 경력 / 활동 / 활동 -> (수정) 경력 / 활동
| <Text variant="label1" weight="semibold" color="text-basic" className="w-6.25 shrink-0"> | ||
| 기간 | ||
| </Text> |
There was a problem hiding this comment.
MonthRangePicker 의 label 과 스타일이 다른가요??
There was a problem hiding this comment.
네 이부분은 세로 배치가 아니라 가로 배치여서
[라벨] [MonthPicker] 처럼 되어있습니다
There was a problem hiding this comment.
이 두 경우 밖에 가로 배치가 없어서 컴포넌트화 시키기보다는 예외상황에서만 저렇게 하는게 나아보여 저렇게 구현했습니다!
| <Text variant="label1" weight="semibold" color="text-basic" className="w-6.25 shrink-0"> | ||
| 기간 | ||
| </Text> |
There was a problem hiding this comment.
요기도 라벨 사용 확인하면 좋을 거 같아요

#️⃣연관된 이슈
📝작업 내용
max로 종료일을, 종료일 MonthPicker에는min으로 시작일을 전달하여 날짜 역전을 방지했습니다.💬리뷰 요구사항(선택)
Summary by CodeRabbit