Skip to content

Commit d3d61bc

Browse files
committed
refactor: Toggle에 BindingAction 처리
1 parent 6fddced commit d3d61bc

3 files changed

Lines changed: 7 additions & 7 deletions

File tree

Application/DevLogCore/Sources/TodayDisplayOptions.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ public struct TodayDisplayOptions: Equatable {
2121

2222
public var dueDateVisibility: DueDateVisibility
2323
public var focusVisibility: FocusVisibility
24+
public var isFocusedOnly: Bool {
25+
get { focusVisibility == .focusedOnly }
26+
set { focusVisibility = newValue ? .focusedOnly : .all }
27+
}
2428

2529
public init(
2630
dueDateVisibility: DueDateVisibility,

Application/DevLogPresentation/Sources/Today/TodayFeature.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ struct TodayFeature {
178178
case .alert:
179179
break
180180
case .binding(\.displayOptions.dueDateVisibility),
181-
.binding(\.displayOptions.focusVisibility):
181+
.binding(\.displayOptions.focusVisibility),
182+
.binding(\.displayOptions.isFocusedOnly):
182183
return updateDisplayOptionsEffect(state.displayOptions)
183184
case .binding:
184185
break

Application/DevLogPresentation/Sources/Today/TodayView.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,7 @@ struct TodayView: View {
9393

9494
Toggle(
9595
String(localized: "today_pinned_only"),
96-
isOn: Binding(
97-
get: { store.displayOptions.focusVisibility == .focusedOnly },
98-
set: {
99-
store.send(.setFocusVisibility($0 ? .focusedOnly : .all))
100-
}
101-
)
96+
isOn: $store.displayOptions.isFocusedOnly
10297
)
10398
.tint(.orange)
10499

0 commit comments

Comments
 (0)