Skip to content

Commit f6247e5

Browse files
committed
refactor: Binding 적용
1 parent bdcd1bc commit f6247e5

2 files changed

Lines changed: 11 additions & 9 deletions

File tree

Application/DevLogPresentation/Sources/Login/LoginFeature.swift

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff 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

Application/DevLogPresentation/Sources/Login/LoginView.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import ComposableArchitecture
1111
struct 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)

0 commit comments

Comments
 (0)