-
Notifications
You must be signed in to change notification settings - Fork 0
feat: 내서재의 로그아웃 기능을 설정 화면으로 이동 #53
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
|
""" Walkthrough로그아웃 기능이 내서재 화면에서 제거되고, 설정 화면으로 이동되었습니다. 설정 화면에서는 새로운 ReedDialog를 활용한 로그아웃 확인 다이얼로그와 비동기 로그아웃 처리, 토스트 사이드 이펙트, 로딩 상태 관리가 추가되었습니다. 기존의 로그아웃 관련 바텀시트 컴포넌트와 내서재 화면의 로그아웃 UI 및 이벤트는 모두 삭제되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant SettingsScreen
participant SettingsPresenter
participant AuthRepository
participant Navigation
User->>SettingsScreen: 로그아웃 버튼 클릭
SettingsScreen->>SettingsPresenter: Logout 이벤트 전송
SettingsPresenter->>SettingsScreen: isLogoutDialogVisible = true
User->>SettingsScreen: 다이얼로그에서 '로그아웃' 클릭
SettingsScreen->>SettingsPresenter: Logout 이벤트 전송
SettingsPresenter->>AuthRepository: logout() 호출
AuthRepository-->>SettingsPresenter: 로그아웃 결과 반환
alt 성공
SettingsPresenter->>Navigation: 로그인 화면으로 이동
else 실패
SettingsPresenter->>SettingsScreen: sideEffect = ShowToast(에러 메시지)
end
SettingsPresenter->>SettingsScreen: isLoading = false, isLogoutDialogVisible = false
Assessment against linked issues
Assessment against linked issues: Out-of-scope changes해당 변경사항에서 요구사항과 관련 없는 기능적 코드 변경은 발견되지 않았습니다. Possibly related PRs
Suggested labels
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (4)
⏰ 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)
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt (1)
159-161: 이벤트 이름의 일관성을 개선하세요.로그아웃 확인 UI가 바텀시트에서 다이얼로그로 변경되었는데, dismiss 이벤트가 여전히
OnBottomSheetDismissed를 사용하고 있습니다. 더 일반적인 이름(예:OnDialogDismissed)으로 변경하는 것을 고려해보세요.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt(1 hunks)feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt(0 hunks)feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryScreen.kt(0 hunks)feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUiState.kt(0 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt(5 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt(5 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsSideEffect.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt(1 hunks)feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/LogoutConfirmationBottomSheet.kt(0 hunks)
💤 Files with no reviewable changes (4)
- feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryUiState.kt
- feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryScreen.kt
- feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt
- feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/component/LogoutConfirmationBottomSheet.kt
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#46
File: feature/search/src/main/kotlin/com/ninecraft/booket/feature/search/component/InfiniteLazyColumn.kt:83-95
Timestamp: 2025-07-14T00:46:03.843Z
Learning: seoyoon513과 팀은 한국어 주석을 선호하며, 한국어 주석을 영어로 번역하라는 제안을 하지 않아야 함
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt (2)
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#35
File: feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/TermsAgreementScreen.kt:127-127
Timestamp: 2025-07-09T01:14:29.836Z
Learning: In the Reed-Android project's TermsAgreementScreen.kt, the OnTermDetailClick event is intentionally passed an empty string for the URL parameter because the actual URLs for terms detail pages haven't been decided yet. This is a temporary implementation that will be updated once the URLs are finalized.
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#45
File: core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/appbar/ReedTopAppBar.kt:65-65
Timestamp: 2025-07-12T01:33:57.101Z
Learning: Reed Android 프로젝트에서 타이포그래피 사용 규칙: 톱 앱바(Top App Bar)에서는 `headline2SemiBold`를 사용하고, 바텀시트(Bottom Sheet)에서는 `heading2SemiBold`를 사용한다. 이는 의도적인 디자인 시스템 차별화이다.
core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt (3)
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#35
File: feature/login/src/main/kotlin/com/ninecraft/booket/feature/login/TermsAgreementScreen.kt:127-127
Timestamp: 2025-07-09T01:14:29.836Z
Learning: In the Reed-Android project's TermsAgreementScreen.kt, the OnTermDetailClick event is intentionally passed an empty string for the URL parameter because the actual URLs for terms detail pages haven't been decided yet. This is a temporary implementation that will be updated once the URLs are finalized.
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#45
File: core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/appbar/ReedTopAppBar.kt:65-65
Timestamp: 2025-07-12T01:33:57.101Z
Learning: Reed Android 프로젝트에서 타이포그래피 사용 규칙: 톱 앱바(Top App Bar)에서는 `headline2SemiBold`를 사용하고, 바텀시트(Bottom Sheet)에서는 `heading2SemiBold`를 사용한다. 이는 의도적인 디자인 시스템 차별화이다.
Learnt from: seoyoon513
PR: YAPP-Github/Reed-Android#32
File: core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/theme/Theme.kt:15-21
Timestamp: 2025-07-08T03:21:24.693Z
Learning: Reed Android 프로젝트에서는 다크모드/라이트모드 대응 계획이 없고 기본 테마 값만 사용할 예정이다.
🧬 Code Graph Analysis (2)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt (2)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsSideEffect.kt (1)
HandleSettingsSideEffects(8-27)core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt (1)
ReedDialog(24-98)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt (1)
core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils/HandleException.kt (1)
handleException(9-36)
⏰ 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: ci-build
🔇 Additional comments (4)
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsUiState.kt (1)
6-17: UI 상태 관리 개선이 잘 되었습니다.로그아웃 확인 UI를 바텀시트에서 다이얼로그로 변경하고, 로딩 상태와 사이드 이펙트 처리를 추가한 것이 적절합니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt (1)
47-50: 사이드 이펙트 처리가 잘 추가되었습니다.토스트 메시지 표시와 같은 UI 피드백을 적절히 처리하고 있습니다.
core/designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt (1)
24-98: 재사용 가능한 다이얼로그 컴포넌트가 잘 구현되었습니다.적절한 파라미터와 콜백을 제공하고, 디자인 시스템을 잘 활용하고 있습니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsPresenter.kt (1)
74-102: 비동기 로그아웃 처리가 잘 구현되었습니다.적절한 로딩 상태 관리, 에러 처리, 그리고 네비게이션 리셋이 구현되어 있습니다.
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsSideEffect.kt
Outdated
Show resolved
Hide resolved
예/아니오 의외에 사용자의 동의(체크박스)를 묻는 추가 컨텐츠가 있는 관계로 Dialog로 안바뀔거같아요!(예상) |
.../designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt
Outdated
Show resolved
Hide resolved
.../designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt
Outdated
Show resolved
Hide resolved
.../designsystem/src/main/kotlin/com/ninecraft/booket/core/designsystem/component/ReedDialog.kt
Outdated
Show resolved
Hide resolved
feature/settings/src/main/kotlin/com/ninecraft/booket/feature/settings/SettingsScreen.kt
Show resolved
Hide resolved
easyhooon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
🔗 관련 이슈
📙 작업 설명
📸 스크린샷 또는 시연 영상
ReedDialog
설정 > 로그아웃
Reed_.mp4
💬 추가 설명 or 리뷰 포인트
Summary by CodeRabbit
신규 기능
버그 수정
기능 개선
리팩터링
문서화