[Feat] 마이페이지 UI 개편#203
Hidden character warning
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthrough프로필 키워드 섹션에 정보 모달 트리거를 추가하고 샘플 키워드에 변경사항프로필 정보 모달 기능
Sequence DiagramsequenceDiagram
participant User as 사용자
participant Profile as ProfileScreen
participant Section as ProfileKeywordSection
participant Modal as InfoModalTrigger
User->>Section: 정보 아이콘 클릭
Section->>Profile: onInfoClick()
Profile->>Profile: showInfoModal = true
Profile->>Modal: 렌더링
Modal-->>User: 정보 표시
User->>Profile: 오버레이 클릭
Profile->>Profile: showInfoModal = false
예상 코드 리뷰 노력🎯 3 (Moderate) | ⏱️ ~25 minutes 관련 PR
추천 라벨
추천 리뷰어
시를 바치며
🚥 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 docstrings
🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. 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
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt (1)
62-68:⚠️ Potential issue | 🟠 Major | ⚡ Quick win설정 버튼 액션이 라우트까지 연결되지 않았습니다.
상단 설정 아이콘은 렌더링되지만,
ProfileRoute에서onSettingsClick을 주입하지 않아 현재는 무동작일 가능성이 큽니다. 기본값{}도 누락을 숨기고 있습니다.수정 제안 diff
fun ProfileRoute( paddingValues: PaddingValues, navigateUp: () -> Unit, + navigateToSettings: () -> Unit, navigateToCollectionList: (routeType: CollectionListRouteType, userId: String?) -> Unit, @@ ProfileScreen( modifier = Modifier.padding(paddingValues), uiState = uiState, onBackClick = navigateUp, + onSettingsClick = navigateToSettings, onCollectionItemClick = navigateToCollectionDetail, @@ private fun ProfileScreen( uiState: ProfileUiState, modifier: Modifier = Modifier, onRefreshClick: () -> Unit = {}, onBackClick: () -> Unit = {}, - onSettingsClick: () -> Unit = {}, + onSettingsClick: () -> Unit, @@ ProfileScreen( modifier = Modifier.fillMaxSize(), uiState = uiState, + onSettingsClick = {}, onCollectionItemClick = {}, onCreatedCollectionMoreClick = {}, onSavedCollectionMoreClick = {} )Also applies to: 103-124, 144-145
🤖 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 `@app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt` around lines 62 - 68, ProfileRoute is missing an onSettingsClick callback so the settings icon renders but does nothing; add a parameter to ProfileRoute with signature onSettingsClick: () -> Unit = {} (or non-default if callers must handle it) and pass that lambda into the composable that renders the top app bar/settings icon (the composable or slot that currently handles the settings icon click inside ProfileRoute), and update any internal invocations (and callers of ProfileRoute) to forward or handle this callback so the settings tap is propagated to navigation. Ensure you update all overloads/usages of ProfileRoute (the other occurrences noted) to accept/forward onSettingsClick accordingly.
🤖 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
`@app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt`:
- Around line 84-85: The percent parameter passed into the UI should be clamped
to the expected 0f..1f range to avoid runtime errors when used with
fillMaxWidth; update the component that takes percent (ProfileKeywordGraphItem)
to call percent.coerceIn(0f, 1f) before using it (e.g., in the value passed to
Modifier.fillMaxWidth or any layout calculations) so out-of-range server values
are safely bounded.
---
Outside diff comments:
In `@app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt`:
- Around line 62-68: ProfileRoute is missing an onSettingsClick callback so the
settings icon renders but does nothing; add a parameter to ProfileRoute with
signature onSettingsClick: () -> Unit = {} (or non-default if callers must
handle it) and pass that lambda into the composable that renders the top app
bar/settings icon (the composable or slot that currently handles the settings
icon click inside ProfileRoute), and update any internal invocations (and
callers of ProfileRoute) to forward or handle this callback so the settings tap
is propagated to navigation. Ensure you update all overloads/usages of
ProfileRoute (the other occurrences noted) to accept/forward onSettingsClick
accordingly.
🪄 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: 5e3be503-ae9f-44bd-85c2-462d1193f15b
📒 Files selected for processing (5)
app/src/main/java/com/flint/domain/model/user/KeywordListModel.ktapp/src/main/java/com/flint/presentation/profile/ProfileScreen.ktapp/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.ktapp/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.ktapp/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt
jongwoo2003-sidewalk
left a comment
There was a problem hiding this comment.
코드 리뷰
[중간] InfoModalTrigger.kt — 직접 색상 참조 (테마 불일치)
// 현재 (직접 참조)
.background(color = FlintColors.gray800, ...)
color = FlintColors.gray300
// 권장 (테마 참조)
.background(color = FlintTheme.colors.gray800, ...)
color = FlintTheme.colors.gray300프로젝트 전반에서 FlintTheme.colors.*를 사용하는 컨벤션인데, 이 컴포넌트만 FlintColors.*를 직접 참조하고 있습니다. 다크/라이트 테마 대응 시 문제가 될 수 있습니다.
[확인 필요] ProfileScreen.kt — 마이프로필 진입 시 뒤로가기 동작
// 이전: userId != null 일 때만 back 버튼 표시
if (uiState.userId != null) {
FlintBackTopAppbar(onClick = onBackClick)
}
// 이후: 항상 표시
FlintBasicTopAppbar(
navigationIcon = {
Icon(..., modifier = Modifier.noRippleClickable { onBackClick() })
},
...
)마이페이지(userId == null) 진입 시에도 뒤로가기 버튼이 항상 노출됩니다. 백스택이 없는 진입 경로에서도 onBackClick이 안전하게 처리되는지 확인이 필요합니다.
📮 관련 이슈
📌 작업 내용
📸 스크린샷
😅 미구현
🫛 To. 리뷰어
Summary by CodeRabbit
새로운 기능
스타일
개선사항