[Feat] 선택된 영화 아이템, 프로필 사진 수정 컴포넌트 수정#60
Conversation
📝 Walkthrough워크스루디자인 시스템 컴포넌트 라이브러리에 두 개의 새로운 Compose UI 컴포넌트를 추가합니다. 변경 사항
예상 코드 리뷰 노력🎯 2 (단순) | ⏱️ ~10분 관련 가능성 있는 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
Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.kt (1)
40-49: 접근성 개선을 고려해주세요.
contentDescription이 "camera"로 설정되어 있는데, 스크린 리더 사용자를 위해 더 명확한 설명이 좋습니다. 또한clickable에 시맨틱 정보를 추가하면 접근성이 향상됩니다.♻️ 접근성 개선 제안
Icon( imageVector = ImageVector.vectorResource(id = R.drawable.ic_profile_change), - contentDescription = "camera", + contentDescription = "프로필 사진 변경", tint = Color.Unspecified, modifier = Modifier .align(Alignment.BottomEnd) .size(48.dp) - .clickable { onClickEdit() }, + .clickable( + onClickLabel = "프로필 사진 변경" + ) { onClickEdit() }, )app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt (1)
38-47: 접근성 개선을 고려해주세요.
contentDescription이 "x"로 설정되어 있는데, 스크린 리더 사용자에게 충분한 정보를 제공하지 않습니다. EditProfileImage와 동일하게 더 명확한 설명을 추가하는 것이 좋습니다.♻️ 접근성 개선 제안
Icon( imageVector = ImageVector.vectorResource(id = R.drawable.ic_deselect), - contentDescription = "x", + contentDescription = "선택 해제", tint = Color.Unspecified, modifier = Modifier .align(Alignment.TopEnd) .size(24.dp) - .clickable { onClickRemove() }, + .clickable( + onClickLabel = "영화 선택 해제" + ) { onClickRemove() }, )
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.ktapp/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.ktapp/src/main/res/drawable/ic_deselect.xml
🧰 Additional context used
🧬 Code graph analysis (2)
app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt (2)
app/src/main/java/com/flint/core/designsystem/component/image/NetworkImage.kt (1)
NetworkImage(22-46)app/src/main/java/com/flint/core/designsystem/theme/Theme.kt (1)
FlintTheme(8-16)
app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.kt (2)
app/src/main/java/com/flint/core/designsystem/component/image/NetworkImage.kt (1)
NetworkImage(22-46)app/src/main/java/com/flint/core/designsystem/theme/Theme.kt (1)
FlintTheme(8-16)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: PR Build Check
- GitHub Check: PR Lint Check
🔇 Additional comments (4)
app/src/main/res/drawable/ic_deselect.xml (1)
1-16: LGTM!벡터 드로어블이 48x48에서 24x24로 올바르게 스케일링되었습니다. 경로 데이터도 새로운 뷰포트에 맞게 적절히 조정되었고, SelectedFilmItem.kt에서 사용하는 24dp 아이콘 크기와 일치합니다.
app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.kt (1)
53-67: LGTM!Preview 구현이 FlintTheme으로 올바르게 감싸져 있고, 프로젝트 패턴과 일관성이 있습니다.
app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt (2)
21-49: LGTM!컴포넌트 구조가 잘 구성되어 있습니다.
NetworkImage와CircleShape를 올바르게 사용하고 있으며, ic_deselect 아이콘 크기(24dp)가 업데이트된 드로어블 리소스와 일치합니다.
51-65: LGTM!Preview 구현이 EditProfileImage와 일관된 패턴을 따르고 있습니다.
|
Note Docstrings generation - SUCCESS |
Docstrings generation was requested by @ckals413. * #60 (comment) The following files were modified: * `app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.kt` * `app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt`
| @Composable | ||
| fun EditProfileImage( | ||
| imageUrl: String, | ||
| onClickEdit: () -> Unit, |
There was a problem hiding this comment.
p1
onEditClick으로 이름 바꿔주세요..!
| @Composable | ||
| fun SelectedFilmItem( | ||
| imageUrl: String, | ||
| onClickRemove: () -> Unit, |
| modifier: Modifier = Modifier | ||
| ) { | ||
| Box( | ||
| modifier = modifier.size(128.dp) |
There was a problem hiding this comment.
p1
이거 이미지 사이즈 상위로 올려주면 좋을 것 같아요!
There was a problem hiding this comment.
카메라 아이콘이 포스터 원 사이즈랑 비율이 이상해져 고정해두는 걸로 하겠습니다!
| Modifier | ||
| .align(Alignment.BottomEnd) | ||
| .size(48.dp) | ||
| .clickable { onClickEdit() } |
There was a problem hiding this comment.
p1
카메라 아이콘 말고 전체 Box에 클릭 이벤트 다는 편이 더 좋지 않을까요?
기획/디자인에서 클릭 범위를 카메라 아이콘으로 한정해주신 걸까요?
| modifier: Modifier = Modifier | ||
| ) { | ||
| Box( | ||
| modifier = modifier.size(80.dp) |
There was a problem hiding this comment.
p1
요것도 확장성을 위해 상위에서 받아주면 좋을 것 같아요~~
| NetworkImage( | ||
| imageUrl = imageUrl, | ||
| shape = CircleShape, | ||
| modifier = Modifier | ||
| .fillMaxSize() | ||
| .padding(4.dp) | ||
| .align(Alignment.Center) | ||
| ) |
There was a problem hiding this comment.
p1
여기서는 ProfileImage 컴포넌트로 작업해주시면 좋을 것 같습니다!!
기본 이미지가 Avator 아미지로 보여야 하는 거니까
| Modifier | ||
| .align(Alignment.TopEnd) | ||
| .size(24.dp) | ||
| .clickable { onClickRemove() } |
There was a problem hiding this comment.
앗 이건 삭제 이모티콘이라 아니구나ㅎㅎ
터치 영역 패딩만 잘 부탁드리겠습니다
There was a problem hiding this comment.
피그마상 터치 영역이 따로 설정되어있어, 아이콘 바꾸고, 아이콘에 클릭 설정했습니다!
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In
@app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt:
- Around line 37-46: The Icon call uses a non-descriptive contentDescription
("x") and an explicit lambda; update the Icon in SelectedFilmItem to provide an
accessible, localized description (e.g., use string resource like
R.string.deselect or a descriptive literal "선택 해제") via contentDescription and
simplify the click handler to a function reference (onRemoveClick) instead of
the lambda, keeping the existing ImageVector.vectorResource(...) and Modifier
chain unchanged.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.ktapp/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt
🚧 Files skipped from review as they are similar to previous changes (1)
- app/src/main/java/com/flint/core/designsystem/component/image/EditProfileImage.kt
🧰 Additional context used
🧬 Code graph analysis (1)
app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt (2)
app/src/main/java/com/flint/core/designsystem/component/image/NetworkImage.kt (1)
NetworkImage(22-46)app/src/main/java/com/flint/core/designsystem/theme/Theme.kt (1)
FlintTheme(8-16)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: PR Build Check
🔇 Additional comments (2)
app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt (2)
1-18: LGTM!임포트가 적절하게 구성되어 있으며, 필요한 Compose 및 프로젝트 리소스가 모두 포함되어 있습니다.
50-64: LGTM!프리뷰 함수가
FlintTheme으로 적절히 감싸져 있고, 테마 배경색을 사용하여 컴포넌트를 시각화하고 있습니다. 코드베이스의 다른 컴포넌트들과 일관된 패턴을 따르고 있습니다.
| Icon( | ||
| imageVector = ImageVector.vectorResource(id = R.drawable.ic_deselect), | ||
| contentDescription = "x", | ||
| tint = Color.Unspecified, | ||
| modifier = | ||
| Modifier | ||
| .align(Alignment.TopEnd) | ||
| .size(48.dp) | ||
| .clickable { onRemoveClick() } | ||
| ) |
There was a problem hiding this comment.
접근성 개선 필요: contentDescription에 의미 있는 설명 사용
contentDescription = "x"는 스크린 리더 사용자에게 의미 있는 정보를 제공하지 않습니다. "선택 해제" 또는 리소스 문자열을 사용하여 접근성을 개선해 주세요.
또한, 람다 { onRemoveClick() }는 함수 참조로 간소화할 수 있습니다.
♿ 제안된 수정 사항
Icon(
imageVector = ImageVector.vectorResource(id = R.drawable.ic_deselect),
- contentDescription = "x",
+ contentDescription = "선택 해제",
tint = Color.Unspecified,
modifier =
Modifier
.align(Alignment.TopEnd)
.size(48.dp)
- .clickable { onRemoveClick() }
+ .clickable(onClick = onRemoveClick)
)🤖 Prompt for AI Agents
In
@app/src/main/java/com/flint/core/designsystem/component/image/SelectedFilmItem.kt
around lines 37 - 46, The Icon call uses a non-descriptive contentDescription
("x") and an explicit lambda; update the Icon in SelectedFilmItem to provide an
accessible, localized description (e.g., use string resource like
R.string.deselect or a descriptive literal "선택 해제") via contentDescription and
simplify the click handler to a function reference (onRemoveClick) instead of
the lambda, keeping the existing ImageVector.vectorResource(...) and Modifier
chain unchanged.
📮 관련 이슈
📌 작업 내용
📸 스크린샷
Summary by CodeRabbit
릴리스 노트
✏️ Tip: You can customize this high-level summary in your review settings.