Refactor: 캘린더 사용성 개선 - #186
Conversation
|
Warning Review limit reached
More reviews will be available in 31 minutes and 22 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
Walkthrough캘린더 화면의 사용성을 개선하는 PR입니다. 새로운 텍스트 스타일과 문구 상수를 디자인 시스템에 추가하고, 데이터 계층에 스케줄 상태 정보를 확장한 뒤, 뷰 모델에서 이를 UI 마커에 전달하고, 캘린더 컴포넌트들을 업데이트하여 반복 여부, 알람 상태별 색상 분기, 일정 초과 표시, 오늘 버튼 렌더링을 구현합니다. Changes캘린더 사용성 개선 및 기능 추가
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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.
Actionable comments posted: 3
🧹 Nitpick comments (1)
iosApp/iosApp.xcodeproj/project.pbxproj (1)
573-573: ⚡ Quick win위젯 확장의 버전이 메인 앱과 동기화되지 않았습니다.
OnDotAlarmWidgetExtension타겟의 버전이 메인 앱(1.3.1/38)과 다르게 1.2.0/24로 유지되고 있습니다. 일반적으로 앱 확장의 버전은 메인 앱과 동기화하는 것이 권장됩니다. 이것이 의도적인 것인지 확인해주세요.만약 위젯에 변경사항이 없어서 의도적으로 버전을 유지하는 것이라면, 향후 유지보수를 위해 주석이나 문서로 남겨두는 것을 권장합니다.
Also applies to: 584-584, 605-605, 618-618
🤖 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 `@iosApp/iosApp.xcodeproj/project.pbxproj` at line 573, OnDotAlarmWidgetExtension의 빌드 버전(CURRENT_PROJECT_VERSION)과 마케팅 버전(MARKETING_VERSION)이 메인 앱(예: 1.3.1 / 38)과 불일치하므로 OnDotAlarmWidgetExtension 타겟의 CURRENT_PROJECT_VERSION 및 MARKETING_VERSION 값을 메인 앱의 값과 일치시키거나(권장) 의도적 유지라면 해당 타겟의 설정 근처에 주석/문서(예: "의도적으로 메인 앱과 버전 동기화하지 않음: 이유 ...")를 추가해 유지보수 히스토리를 남기세요; 대상 식별에 도움이 되도록 pbxproj 내 OnDotAlarmWidgetExtension 타겟 항목과 CURRENT_PROJECT_VERSION, MARKETING_VERSION 속성을 찾아 수정하십시오.
🤖 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 `@core/ui/src/commonMain/kotlin/com/ondot/ui/util/TraceLayoutModifier.kt`:
- Around line 18-22: 현재 systemTrace("layout:$name")가 MeasureResult 생성 시간만 기록하므로
실제 배치(placement) 시간을 측정하지 못합니다; 수정하려면 TraceLayoutModifier의
systemTrace("layout:$name") 호출을 layout(...)의 외부가 아니라 layout(placeable.width,
placeable.height) { ... } 내부의 배치 람다 안으로 옮기고, 배치 람다에서 placeable.placeRelative(0,
0) 호출을 systemTrace로 감싸서 placement 패스가 실행되는 전체 시간을 트레이스에 포함시키십시오(참조 심볼:
systemTrace("layout:$name"), layout(placeable.width, placeable.height) { ... },
placeable.placeRelative).
In
`@data/src/commonMain/kotlin/com/ondot/data/model/response/calendar/CalendarRangeResponse.kt`:
- Around line 32-33: Add a safe default for the non-null property to avoid
deserialization failures when the server omits the key: in
CalendarRangeResponse.CalendarScheduleSummaryResponse set hasActiveAlarm to a
default value (e.g., false) so kotlinx.serialization can decode responses that
lack this field; update the property declaration for hasActiveAlarm to include
the default value and keep the `@SerialName` annotation intact.
In
`@feature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/component/CalendarBottomSheet.kt`:
- Around line 277-303: The PreparationNoteItem composable uses a fixed height
(height(65.dp)) and the note Text lacks maxLines/overflow, causing clipping for
long text; fix by removing the fixed height (use wrap content by removing
.height(65.dp) or replace with .defaultMinSize/maxHeight as needed) and update
the OnDotText for the note to set maxLines (e.g., 2) and overflow =
TextOverflow.Ellipsis (import androidx.compose.ui.text.style.TextOverflow);
modify the PreparationNoteItem function and the note's OnDotText call
accordingly.
---
Nitpick comments:
In `@iosApp/iosApp.xcodeproj/project.pbxproj`:
- Line 573: OnDotAlarmWidgetExtension의 빌드 버전(CURRENT_PROJECT_VERSION)과 마케팅
버전(MARKETING_VERSION)이 메인 앱(예: 1.3.1 / 38)과 불일치하므로 OnDotAlarmWidgetExtension 타겟의
CURRENT_PROJECT_VERSION 및 MARKETING_VERSION 값을 메인 앱의 값과 일치시키거나(권장) 의도적 유지라면 해당
타겟의 설정 근처에 주석/문서(예: "의도적으로 메인 앱과 버전 동기화하지 않음: 이유 ...")를 추가해 유지보수 히스토리를 남기세요; 대상
식별에 도움이 되도록 pbxproj 내 OnDotAlarmWidgetExtension 타겟 항목과 CURRENT_PROJECT_VERSION,
MARKETING_VERSION 속성을 찾아 수정하십시오.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 747eae4d-d1d4-4242-9c47-05479a60ca6d
⛔ Files ignored due to path filters (2)
core/design-system/src/commonMain/composeResources/drawable/ic_home_selected.pngis excluded by!**/*.pngcore/design-system/src/commonMain/composeResources/drawable/ic_home_unselected.pngis excluded by!**/*.png
📒 Files selected for processing (25)
core/design-system/src/commonMain/kotlin/com/ondot/designsystem/extensions/OnDotTextStyle.ktcore/design-system/src/commonMain/kotlin/com/ondot/designsystem/theme/OnDotTypo.ktcore/design-system/src/commonMain/kotlin/com/ondot/designsystem/theme/String.ktcore/ui/src/androidMain/kotlin/com/ondot/ui/util/SystemTrace.android.ktcore/ui/src/commonMain/kotlin/com/ondot/ui/util/SystemTrace.ktcore/ui/src/commonMain/kotlin/com/ondot/ui/util/TraceLayoutModifier.ktcore/ui/src/iosMain/kotlin/com/ondot/ui/util/SystemTrace.ios.ktcore/util/src/commonMain/kotlin/com/ondot/util/DateTimeFormatter.ktdata/src/commonMain/kotlin/com/ondot/data/model/response/calendar/CalendarRangeResponse.ktdata/src/commonMain/kotlin/com/ondot/data/model/response/calendar/mapper/CalendarResponseMapper.ktdomain/src/commonMain/kotlin/com/ondot/domain/model/calendar/CalendarDateScheduleSummary.ktdomain/src/commonMain/kotlin/com/ondot/domain/model/enums/OnDotTextStyle.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/contract/CalendarIntent.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/contract/CalendarScheduleItemUiModel.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/contract/CalendarUiState.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/contract/CalendarViewModel.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/CalendarScreen.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/component/CalendarBottomSheet.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/component/CalendarDay.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/component/CalendarMonthGrid.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/component/ScheduleChip.ktfeature/calendar/src/commonMain/kotlin/com/ondot/calendar/ui/component/TodayFAB.ktfeature/main/src/commonMain/kotlin/com/ondot/main/MainScreen.ktgradle.propertiesiosApp/iosApp.xcodeproj/project.pbxproj
이슈 번호
작업내용
Summary by CodeRabbit
Release Notes
New Features
Style
Chores