-
Notifications
You must be signed in to change notification settings - Fork 0
fix: 기록 수정 화면에서의 로직 개선 #252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughNoteEdit 플로우의 감정 및 텍스트 필드 변경사항을 실시간 추적하도록 리팩토링하고, 초기값 대비 차이 감지 시에만 저장/편집 버튼을 활성화하는 기능을 구현했습니다. 이벤트 기반 아키텍처로 통합하여 상태 변화를 ViewModel에 전달합니다. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant NoteEditView
participant NoteEditViewController
participant NoteEditViewModel
participant EmotionEditViewController
User->>NoteEditView: 텍스트 입력 (page/sentence/appreciation)
NoteEditView->>NoteEditViewController: pageDidChange/sentenceDidChange/appreciationDidChange 이벤트 발행
NoteEditViewController->>NoteEditViewModel: 해당 액션 전달
NoteEditViewModel->>NoteEditViewModel: currentFormData 업데이트<br/>checkForDiff() 호출<br/>isDiff 계산
NoteEditViewModel-->>NoteEditViewController: statePublisher.isDiff 업데이트
NoteEditViewController->>NoteEditView: setSaveButtonEnabled(isDiff)
NoteEditView->>User: 저장 버튼 활성화/비활성화
User->>NoteEditView: 감정 편집 버튼 터치
NoteEditView->>NoteEditViewController: emotionEditViewEvent (.editButtonTapped)
NoteEditViewController->>EmotionEditViewController: 감정 선택 화면 표시
User->>EmotionEditViewController: 감정 선택 변경
EmotionEditViewController->>NoteEditViewController: emotionDidChange 이벤트 (선택된 감정)
NoteEditViewController->>NoteEditViewModel: emotionSelected 액션
NoteEditViewModel->>NoteEditViewModel: initialSelectedEmotion과 비교<br/>checkForDiff() 호출<br/>isDiff 계산
NoteEditViewModel-->>NoteEditViewController: statePublisher.isDiff 업데이트
NoteEditViewController->>NoteEditView: setSaveButtonEnabled(isDiff)
NoteEditView->>User: 저장 버튼 활성화/비활성화
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 분 주의가 필요한 부분:
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (5)
🧰 Additional context used🧠 Learnings (3)📓 Common learnings📚 Learning: 2025-08-26T07:08:40.739ZApplied to files:
📚 Learning: 2025-07-28T10:44:32.256ZApplied to files:
🧬 Code graph analysis (5)src/Projects/BKPresentation/Sources/MainFlow/NoteEdit/View/NoteEditViewController.swift (2)
src/Projects/BKPresentation/Sources/MainFlow/NoteEdit/View/NoteEditView.swift (1)
src/Projects/BKPresentation/Sources/MainFlow/NoteEdit/View/EmotionEditViewController.swift (1)
src/Projects/BKPresentation/Sources/MainFlow/NoteEdit/View/EmotionEditView.swift (1)
src/Projects/BKPresentation/Sources/MainFlow/NoteEdit/ViewModel/NoteEditViewModel.swift (1)
⏰ 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)
🔇 Additional comments (17)
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 |
🔗 관련 이슈
📘 작업 유형
📙 작업 내역
🧪 테스트 내역
🎨 스크린샷 또는 시연 영상 (선택)
Simulator.Screen.Recording.-.ReedDefaultSize.-.2025-11-07.at.08.24.27.mp4
✅ PR 체크리스트
💬 추가 설명 or 리뷰 포인트 (선택)
@Published를 사용하였습니다. 그리고 ViewEvent 구조로 개편하였습니다.Summary by CodeRabbit
출시 노트
새 기능
버그 수정
리팩터