Repository navigation
[FEAT] 개인 캘린더 — 상세 조회 리스트 아이템 마커 정렬 · 완료 상태 라벨 #133 - #135
Conversation
|
Warning Review limit reached
Next review available in: 9 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 Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthrough캘린더 이벤트 목록에 완료 상태 라벨과 정렬 보정이 추가됐다. 날짜 상세 패널과 보드는 화면 크기에 따라 배치가 바뀐다. 월 라벨, 체크박스, 세그먼트 스타일, 테스트용 Changes캘린더 UI 개선
Estimated code review effort: 3 (Moderate) | ~25 minutes 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)
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/features/calendar/components/calendar-event-list-item.tsx`:
- Line 64: Move the completed and in-progress status values and their Korean
labels into an `as const` status constant and label map under `constants/`, then
update the `CalendarEventListItem` rendering to reference that map instead of
hardcoded strings. Preserve the current labels and conditional behavior.
- Around line 57-61: Update CalendarEventListItem to stop hardcoding the status
badge text and route both completed/in-progress labels through an as const label
map, following the existing CALENDAR_ITEM_TAG_LABEL pattern. Define a dedicated
status label constant near the current badge logic and replace the literal “완료”
and “진행중” values with lookups from that map, keeping the existing
event.isCompleted styling and display flow unchanged.
🪄 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: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 8cea9a5f-687b-455f-8960-2f5c1a9641c6
📒 Files selected for processing (1)
src/features/calendar/components/calendar-event-list-item.tsx
| : "bg-status-progress/12 text-status-progress", | ||
| )} | ||
| > | ||
| {event.isCompleted ? "완료" : "진행중"} |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
상태 라벨을 상수 라벨 맵으로 이동하세요.
"완료"와 "진행중"을 컴포넌트에 직접 하드코딩했습니다. constants/에 as const 상태 값과 라벨 맵을 정의하고 컴포넌트에서는 해당 맵을 참조하세요. 상태 라벨이 다른 표시 위치와 분리되는 것을 방지할 수 있습니다.
As per coding guidelines: src/**/*.{ts,tsx}에서는 as const 값과 라벨 맵을 사용하고 표시 라벨을 하드코딩하지 않아야 합니다.
🤖 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/features/calendar/components/calendar-event-list-item.tsx` at line 64,
Move the completed and in-progress status values and their Korean labels into an
`as const` status constant and label map under `constants/`, then update the
`CalendarEventListItem` rendering to reference that map instead of hardcoded
strings. Preserve the current labels and conditional behavior.
Source: Coding guidelines
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
src/features/calendar/types.ts (1)
22-30: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUI 라벨 상수를
constants/로 이동하세요.
CALENDAR_COMPLETION_LABEL과getCalendarCompletionLabel은 타입이 아니라 런타임 표시값입니다. 현재types.ts에 두면 타입 정의와 UI 상수가 같은 모듈에 섞입니다. 해당 기능의constants/모듈로 이동하고types.ts에는 타입 정의만 남겨 주세요.As per coding guidelines: 도메인 값 목록은
constants/에 정의해야 합니다.🤖 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/features/calendar/types.ts` around lines 22 - 30, Move the runtime UI label constant CALENDAR_COMPLETION_LABEL and helper getCalendarCompletionLabel from types.ts into the feature’s constants module, then update all imports to use the new module. Leave types.ts containing only type definitions and preserve the existing labels and helper behavior.Source: Coding guidelines
🤖 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/components/ui/checkbox.tsx`:
- Around line 8-15: Update Checkbox so className handling supports the
state-function form accepted by CheckboxPrimitive.Root.Props: resolve the
incoming className function using the primitive’s state before passing its
returned value to cn, while preserving direct string/class values and the
existing styling.
In `@src/features/calendar/components/calendar-day-detail-panel.tsx`:
- Around line 39-55: The bottom gradient overlay in calendar-day-detail-panel is
rendered unconditionally, so update the CalendarDayDetailPanel flow to show it
only when the event list actually overflows. Use the existing list container in
the component and gate the overlay render on the scroll state of the ul by
checking scrollHeight, clientHeight, and scrollTop so it appears only when more
content remains below. Keep the CalendarEventListItem rendering unchanged and
ensure the overlay does not cover short, non-scrollable lists or persist after
scrolling to the end.
- Line 26: Update the aside element’s responsive width classes so the default
mobile layout is not constrained by max-w-[230px]. Move that constraint to
lg:max-w-[230px], preserving the existing desktop width behavior and the
surrounding CalendarBoard layout.
In `@src/features/calendar/components/calendar-toolbar.tsx`:
- Line 39: Update the month-label <p> element containing monthLabel in the
calendar toolbar to include the shrink-0 utility alongside w-28, preserving its
fixed width and button positioning on narrow viewports.
---
Nitpick comments:
In `@src/features/calendar/types.ts`:
- Around line 22-30: Move the runtime UI label constant
CALENDAR_COMPLETION_LABEL and helper getCalendarCompletionLabel from types.ts
into the feature’s constants module, then update all imports to use the new
module. Leave types.ts containing only type definitions and preserve the
existing labels and helper behavior.
🪄 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: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 52e70549-8fd2-4a93-b24f-f66c94db01a1
📒 Files selected for processing (7)
src/components/ui/checkbox.tsxsrc/features/calendar/components/calendar-board.tsxsrc/features/calendar/components/calendar-day-detail-panel.tsxsrc/features/calendar/components/calendar-event-list-item.tsxsrc/features/calendar/components/calendar-toolbar.tsxsrc/features/calendar/components/personal-calendar.csssrc/features/calendar/types.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- src/features/calendar/components/calendar-event-list-item.tsx
📋 PR 타입
🗂 작업 영역
🙋 관련 역할
📝 작업 내용
src/features/calendar/components/calendar-event-list-item.tsx:size-4고정 폭 컨테이너로 감싸 정렬 통일--status-progress/--status-done토큰)✅ 작업 체크리스트
기본
fix/calendar-list-item-align#{이슈번호}꼴, basedevelop)type: 제목 #{이슈번호})Closes #에 이슈 번호 기입console· 주석 처리된 코드 제거Z 필수
--status-*토큰만 재사용, 다크/라이트 자동 대응품질
aria-label유지, 배지는 텍스트라 스크린리더가 그대로 읽음system도메인의StatusBadge와 같은 raw span + 시맨틱 토큰 방식 재사용🔗 연관 이슈
Closes #133
📸 스크린샷 (선택)
💬 리뷰 포인트
📝 추가 메모
없음
Summary by CodeRabbit