홈 화면 QA 반영#152
Conversation
- `presentation.practiceCount`가 0인 경우 빈 상태 전용 타이틀 문자열 적용 - 연습 기록 존재 여부에 따라 타이틀 텍스트를 다르게 표시하도록 분기 처리
- `PracticeActionCard`에서 카드 전체 대신 하단 액션 영역만 클릭 가능하도록 구조 변경 - `PrezelTouchArea` 적용 범위를 `Column` 전체에서 `Row` 내부로 이동 - 터치 영역의 `shape` 설정을 `PrezelTheme.shapes.V8`에서 `V4`로 변경
- `strings.xml`에 다양한 피드백 유도 문구를 포함하는 `feature_feedback_impl_placeholders` 문자열 배열 추가 - `FeedbackScreen`에서 `stringArrayResource`를 사용하여 랜덤한 플레이스홀더를 선택하도록 로직 개선 - `remember`를 활용하여 플레이스홀더 선택 상태를 유지하고 불필요한 재계산 방지 - 기존의 단일 플레이스홀더 리소스(`feature_feedback_impl_placeholder`) 제거
- `PrezelTextField`와 `PrezelTextArea`의 내부 상태를 `String`에서 `TextFieldValue`로 전환하여 커서 위치 및 선택 영역 관리 개선 - `applyPrezelTextInputPolicy`를 `TextFieldValue` 기반으로 변경하고 최대 길이 초과 시 입력을 제한하도록 로직 수정 - 외부에서 전달되는 `value` 변경 시 내부 상태를 동기화하기 위한 `LaunchedEffect` 추가 - `PrezelTextArea`의 글자 수 카운터 위치를 우측 하단으로 조정하고 관련 레이아웃 구조 개선 - 불필요한 줄바꿈 제거 로직 삭제 및 에러 메시지 한글화
📝 WalkthroughWalkthroughPrezel 디자인시스템의 PrezelTextArea/PrezelTextField/PrezelTextFieldState가 String 기반 입력 처리에서 TextFieldValue 기반 상태 관리로 전환되었다. 피드백 화면의 placeholder가 랜덤 노출로 변경되었고, 홈 화면 연습 카드의 타이틀 조건 및 터치 영역이 수정되었다. Changes텍스트 입력 컴포넌트 TextFieldValue 전환
피드백/홈 화면 QA 반영
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
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
🧹 Nitpick comments (1)
Prezel/feature/home/impl/src/main/java/com/team/prezel/feature/home/impl/main/component/title/PracticeActionCard.kt (1)
35-57: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win클릭 영역 축소로 인해 최소 터치 타겟(48dp) 미달 우려.
PrezelTouchArea가 카드 전체가 아닌 액션 텍스트+화살표Row만 감싸도록 축소되었습니다(QA 요구사항과 일치). 다만caption1Regular텍스트와 16dp 아이콘으로 구성된 이Row의 실제 높이는 Material 접근성 가이드라인이 권장하는 48dp 터치 타겟보다 작을 가능성이 높습니다.PrezelTouchArea는extraTouchPadding파라미터를 제공하므로, 시각적 레이아웃을 바꾸지 않고 터치 영역만 넓히는 방식으로 보완할 수 있습니다.♿ 터치 영역 확장 제안
PrezelTouchArea( onClick = onClick, shape = PrezelTheme.shapes.V4, + extraTouchPadding = PaddingValues(vertical = PrezelTheme.spacing.V8), ) {Based on the Material Design/Android accessibility guidance that Consider making sure these elements have a width and height of at least 48dp, as described in the Material Design Accessibility guidelines, when you implement clickable or touchable elements in a layout, consider using dimensions that meet or exceed the recommended size for touch targets.
🤖 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 `@Prezel/feature/home/impl/src/main/java/com/team/prezel/feature/home/impl/main/component/title/PracticeActionCard.kt` around lines 35 - 57, The clickable area in PracticeActionCard’s PrezelTouchArea is now only wrapping the action Row, so its touch target may fall below the recommended 48dp minimum. Keep the visual layout unchanged, but expand the tappable region by using PrezelTouchArea’s extraTouchPadding on the action row so the click target meets accessibility guidance. Verify the adjustment in PracticeActionCard without changing the text/icon arrangement or card padding.
🤖 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
`@Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/textfield/PrezelTextFieldState.kt`:
- Around line 226-233: `applyPrezelTextInputPolicy` currently rejects any
`newValue` whose text exceeds `maxLength` by returning `currentValue`, which
causes valid edits and IME updates to be lost once the limit is reached. Update
this function to trim only the excess characters from `newValue.text` instead of
reverting to `currentValue`, and make sure the resulting `TextFieldValue`
preserves or корректly adjusts `selection` and `composition` so cursor position
and ongoing input remain usable.
---
Nitpick comments:
In
`@Prezel/feature/home/impl/src/main/java/com/team/prezel/feature/home/impl/main/component/title/PracticeActionCard.kt`:
- Around line 35-57: The clickable area in PracticeActionCard’s PrezelTouchArea
is now only wrapping the action Row, so its touch target may fall below the
recommended 48dp minimum. Keep the visual layout unchanged, but expand the
tappable region by using PrezelTouchArea’s extraTouchPadding on the action row
so the click target meets accessibility guidance. Verify the adjustment in
PracticeActionCard without changing the text/icon arrangement or card padding.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 3ad3243a-bee6-4346-a109-72c0f9afc78a
📒 Files selected for processing (7)
Prezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/textfield/PrezelTextArea.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/textfield/PrezelTextField.ktPrezel/core/designsystem/src/main/java/com/team/prezel/core/designsystem/component/textfield/PrezelTextFieldState.ktPrezel/feature/feedback/impl/src/main/java/com/team/prezel/feature/feedback/impl/FeedbackScreen.ktPrezel/feature/feedback/impl/src/main/res/values/strings.xmlPrezel/feature/home/impl/src/main/java/com/team/prezel/feature/home/impl/main/component/body/PresentationSheet.ktPrezel/feature/home/impl/src/main/java/com/team/prezel/feature/home/impl/main/component/title/PracticeActionCard.kt
📌 작업 내용
홈 화면
셀프 피드백 작성화면
🧩 관련 이슈
📸 스크린샷
📢 논의하고 싶은 내용
Summary by CodeRabbit
New Features
Bug Fixes