feat: OCR 문장 선택 UI/감상평 작성 UI 수정#231
Conversation
WalkthroughOCR 문장 선택 및 감상평 작성 UI 수정. BadgeView 컴포넌트 신규 추가, 감상평 입력 필드에 "선택" 배지 추가, 문장 선택 시 글꼴 가중치 애니메이션 적용, 감상평을 선택 항목으로 변경하여 다음 버튼 UX 개선. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 일관된 패턴의 UI 컴포넌트 추가와 기존 뷰 수정이 대부분이며, 각 변경사항이 독립적이고 로직 밀도가 낮습니다. BadgeView는 단순한 새 컴포넌트이고, 나머지 수정사항들은 명확한 의도의 작은 변경입니다. Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ 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: 0
🧹 Nitpick comments (2)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/TooltipView.swift (1)
7-7: 기술 부채 메모 확인.2차 작업 시 BKDesign 컴포넌트로 추출 예정이라는 메모가 명확합니다. 현재 PR에는 영향이 없으며, 향후 디자인 시스템 통합 시 유용한 참고사항입니다.
이 작업을 추적하기 위한 이슈를 생성하시겠습니까?
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (1)
163-163: 디자인 시스템 상수 사용을 고려해 보세요.
titleRowStackSpacing에 매직 넘버10을 사용하고 있습니다. 가능하다면BKSpacing의 기존 상수를 활용하면 디자인 일관성을 높일 수 있습니다.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift(1 hunks)src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift(1 hunks)src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift(6 hunks)src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift(1 hunks)src/Projects/BKPresentation/Sources/MainFlow/Note/View/TooltipView.swift(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (3)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift (3)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (1)
registrationForm(146-152)src/Projects/BKPresentation/Sources/MainFlow/Note/View/EmotionRegistrationView.swift (1)
registrationForm(113-116)src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceRegistrationView.swift (1)
registrationForm(131-146)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift (1)
src/Projects/BKDesign/Sources/Extensions/UIColor+.swift (3)
bkContentColor(52-63)bkBackgroundColor(38-50)bkBorderColor(65-76)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift (1)
src/Projects/BKDesign/Sources/Extensions/UIColor+.swift (2)
bkContentColor(52-63)bkBackgroundColor(38-50)
⏰ 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: build
🔇 Additional comments (6)
src/Projects/BKPresentation/Sources/MainFlow/Note/View/NoteView.swift (1)
182-187: 감상평을 선택 항목으로 변경한 로직이 올바르게 구현되었습니다.페이지 2(감상평 작성)에서 버튼을 무조건 활성화하는 로직이 "선택" 배지 추가 및
SentenceAppreciationView.registrationForm()의 변경사항과 일관성 있게 구현되었습니다.src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceListCell.swift (2)
57-59: 중첩 애니메이션 구조를 확인해 주세요.
configure메서드에서updateSelectionState를 애니메이션 블록으로 감싸고 있는데,updateSelectionState내부(74-76줄)에도 별도의 애니메이션 블록이 있습니다.
- 외부 애니메이션:
updateSelectionState호출 자체를 애니메이션- 내부 애니메이션:
layoutIfNeeded()만 애니메이션폰트 변경은 암시적으로 애니메이션되지 않을 수 있으므로, 의도한 대로 동작하는지 확인해 주세요. 필요하다면 애니메이션 구조를 단순화하는 것을 고려해 보세요.
64-64: 선택 상태를 폰트 굵기로 표현하는 개선이 잘 구현되었습니다.색상 대신 폰트 굵기(medium/regular)로 선택 상태를 표현하여 UI가 더 일관되고 명확해졌습니다.
Also applies to: 69-69
src/Projects/BKPresentation/Sources/MainFlow/Note/View/BadgeView.swift (1)
7-46: BadgeView 컴포넌트가 깔끔하게 구현되었습니다.명확한 책임을 가진 재사용 가능한 UI 컴포넌트로 잘 설계되었습니다. Public API(
init(title:),title프로퍼티)도 직관적이며,SentenceAppreciationView에서 의도한 대로 활용되고 있습니다.src/Projects/BKPresentation/Sources/MainFlow/Note/View/SentenceAppreciationView.swift (2)
9-9: 감상평을 선택 항목으로 변경한 구현이 올바르지만, 백엔드 호환성을 확인해 주세요.
appreciation이String?으로 변경되었고registrationForm()이 빈 문자열도 허용하도록 수정되었습니다. 이는 "선택" 배지와 일관성이 있습니다.그러나 현재 구현은 빈 문자열("")을 전달하는데, 백엔드 API가 선택 항목에 대해
nil을 기대하는지 빈 문자열을 기대하는지 확인이 필요합니다. PR 설명에서 "API가 아직 수정되지 않았다"고 언급하신 만큼, API 업데이트 시 이 부분의 호환성을 검증해 주세요.Also applies to: 146-152
20-38: 배지와 타이틀 레이아웃이 잘 구성되었습니다.
optionBadge와titleRowStack을 추가하여 "문장에 대한 감상을 남겨주세요" 타이틀과 "선택" 배지를 수평으로 배치한 구조가 깔끔하고 의도가 명확합니다.Also applies to: 80-81
🔗 관련 이슈
📘 작업 유형
📙 작업 내역
🧪 테스트 내역
🎨 스크린샷 또는 시연 영상 (선택)
문장 선택 UI
ScreenRecording_10-18-2025.17-15-34_1.mp4
감상평 작성 UI
✅ PR 체크리스트
💬 추가 설명 or 리뷰 포인트 (선택)
Summary by CodeRabbit
릴리스 노트
새 기능
개선 사항