File tree Expand file tree Collapse file tree
Application/DevLogPresentation/Sources/Login Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,8 +20,8 @@ struct LoginFeature {
2020 var alertMessage = " "
2121 }
2222
23- enum Action {
24- case setAlert ( Bool , AlertType ? = nil )
23+ enum Action : BindableAction {
24+ case binding ( BindingAction < State > )
2525 case tapSignInButton( AuthProvider )
2626 case signInSucceeded
2727 case signInFailed( AlertType )
@@ -36,10 +36,15 @@ struct LoginFeature {
3636 @Dependency ( SignInUseCaseDependency . self) var signInUseCase
3737
3838 var body : some ReducerOf < Self > {
39+ BindingReducer ( )
3940 Reduce { state, action in
4041 switch action {
41- case . setAlert( let isPresented, let alertType) :
42- setAlert ( & state, isPresented: isPresented, alertType: alertType)
42+ case . binding( \. showAlert) :
43+ if !state. showAlert {
44+ setAlert ( & state, isPresented: false , alertType: nil )
45+ }
46+ case . binding: // 다른 binding 액션들은 이쪽으로 처리됨
47+ break // 작성 필수
4348 case . tapSignInButton( let provider) :
4449 state. isLoading = true
4550 return . run { [ signInUseCase] send in
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import ComposableArchitecture
1111struct LoginView : View {
1212 @Environment ( \. colorScheme) var colorScheme
1313 @Environment ( \. sceneWidth) var sceneWidth
14- let store : StoreOf < LoginFeature >
14+ @ Bindable var store : StoreOf < LoginFeature >
1515
1616 var body : some View {
1717 ZStack {
@@ -46,10 +46,7 @@ struct LoginView: View {
4646 LoadingView ( )
4747 }
4848 }
49- . alert ( store. alertTitle, isPresented: Binding (
50- get: { store. showAlert } ,
51- set: { store. send ( . setAlert( $0) ) }
52- ) ) {
49+ . alert ( store. alertTitle, isPresented: $store. showAlert) {
5350 Button ( String ( localized: " common_close " ) , role: . cancel) { }
5451 } message: {
5552 Text ( store. alertMessage)
You can’t perform that action at this time.
0 commit comments