Skip to content
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

[Refactor] SettingView 리팩토링 / SettingReducer 구현 #81

Open
wants to merge 20 commits into
base: develop
Choose a base branch
from

Conversation

CJiu01
Copy link
Contributor

@CJiu01 CJiu01 commented Jan 29, 2025

📌 Summary

  • SettingView 컨벤션에 맞게 리팩토링
  • SettingReducer 구현

✍️ Description

💡 PR Point

  1. SettingView 구현

  • SettingViewtitleSettingList로 구성되어 있습니다.

  • SettingListView -> List로 리팩토링할지 고민하다 우선 기존 구현되어있는 View 사용하였습니다. UI만 보면 List로 구현되어있을거라는 생각이 드는데 List로 바꾸는 것이 좋을까요? (현재 ListRowView 부분이 조금 지저분한감이 있나요?.?)
  1. SettingList 클릭 이벤트 구현

  • 각 row에 해당하는 열거형(enum listItem) 정의

  • row 클릭시 listItemTapped: (listItem) -> Void 클로저를 통해 이벤트 전달
  1. SettingReducer 구현
  • 로그아웃


    • Alert는 AlertState를 옵셔널로 선언하여 해당 상태가 nil이 아닌 경우 Alert를 띄우도록 구현하였습니다. 

    • Alert의 로그아웃 탭을 클릭하는 경우(.alert(.presented(.logout))) AppReducer의 상태를 변경하여(state.appState = .loggedOut(LoginReducer.State())) Login으로 이동합니다.

    • 로그아웃 완료시, YDSToast를 띄웁니다.
  • 성적알림


    • 토글시, newValue의 T/F를 기준으로 분기됩니다. (.togglePushAuthorization)

    • (알림On & permission==F) 인 경우, Alert를 띄웁니다.

    • 그 이외의 경우, 사용자의 액션에 맞게 toggle이 On/Off됩니다.
  • 약관 WebView 


    • Path, StackState를 이용하여 Navigation을 통해 WebView로 이동합니다.

    • WebView/WebReducer를 별도로 구현하였습니다.
    • @Dependency(\.dismiss) 를 이용하여 해당 뷰를 닫습니다.

📚 Reference

🔥 Test

  1. 로그아웃
Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-01-30.at.01.39.12.mp4
  1. 알림
Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-01-30.at.01.42.19.mp4
  1. 약관
Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-01-30.at.01.47.48.mp4

@CJiu01 CJiu01 self-assigned this Jan 29, 2025
@CJiu01 CJiu01 added the refactor🪄 리팩토링 label Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor🪄 리팩토링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Refactor] Setting 리팩토링
1 participant