Skip to content

Commit 6fddced

Browse files
committed
refactor: Picker에 BindingAction 처리
1 parent 668e80a commit 6fddced

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

Application/DevLogPresentation/Sources/Today/TodayFeature.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,9 @@ struct TodayFeature {
137137
}
138138
}
139139

140-
enum Action: Equatable {
140+
enum Action: BindableAction, Equatable {
141141
case alert(PresentationAction<Never>)
142+
case binding(BindingAction<State>)
142143
case refresh
143144
case fetchData
144145
case setSectionScope(SectionScope)
@@ -171,10 +172,16 @@ struct TodayFeature {
171172
Scope(state: \.loading, action: \.loading) {
172173
LoadingFeature()
173174
}
175+
BindingReducer()
174176
Reduce { state, action in
175177
switch action {
176178
case .alert:
177179
break
180+
case .binding(\.displayOptions.dueDateVisibility),
181+
.binding(\.displayOptions.focusVisibility):
182+
return updateDisplayOptionsEffect(state.displayOptions)
183+
case .binding:
184+
break
178185
case .refresh, .fetchData:
179186
return fetchTodosEffect()
180187
case .setSectionScope(let scope):

Application/DevLogPresentation/Sources/Today/TodayView.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,7 @@ struct TodayView: View {
8484
Menu {
8585
Picker(
8686
String(localized: "today_due_visibility_label"),
87-
selection: Binding(
88-
get: { store.displayOptions.dueDateVisibility },
89-
set: { store.send(.setDueDateVisibility($0)) }
90-
)
87+
selection: $store.displayOptions.dueDateVisibility
9188
) {
9289
ForEach(TodayDisplayOptions.DueDateVisibility.allCases, id: \.self) { option in
9390
Text(option.title).tag(option)

0 commit comments

Comments
 (0)