diff --git a/secant.xcodeproj/project.pbxproj b/secant.xcodeproj/project.pbxproj index f5fdff3..27e76bc 100644 --- a/secant.xcodeproj/project.pbxproj +++ b/secant.xcodeproj/project.pbxproj @@ -770,8 +770,8 @@ 346D41E228DF0B0900963F36 /* CheckCircle */ = { isa = PBXGroup; children = ( - 346D41E328DF0B8600963F36 /* CheckCircle.swift */, 346715A428E2027D0035F7C4 /* CheckCircleStore.swift */, + 346D41E328DF0B8600963F36 /* CheckCircle.swift */, ); path = CheckCircle; sourceTree = ""; diff --git a/secant/Features/SendFlow/SendFlowStore.swift b/secant/Features/SendFlow/SendFlowStore.swift index 2d46493..e089023 100644 --- a/secant/Features/SendFlow/SendFlowStore.swift +++ b/secant/Features/SendFlow/SendFlowStore.swift @@ -19,6 +19,7 @@ typealias AnyTransactionAddressTextFieldReducer = AnyReducer< SendFlowEnvironment > typealias AnyMultiLineTextFieldReducer = AnyReducer +typealias AnyCheckCircleReducer = AnyReducer // MARK: - State @@ -83,7 +84,7 @@ struct SendFlowState: Equatable { // MARK: - Action enum SendFlowAction: Equatable { - case addMemo(CheckCircleAction) + case addMemo(CheckCircleReducer.Action) case memo(MultiLineTextFieldReducer.Action) case onAppear case onDisappear @@ -223,10 +224,13 @@ extension SendFlowReducer { } } - private static let addMemoReducer: SendFlowReducer = CheckCircleReducer.default.pullback( + private static let addMemoReducer: SendFlowReducer = AnyCheckCircleReducer { _ in + CheckCircleReducer() + } + .pullback( state: \SendFlowState.addMemoState, action: /SendFlowAction.addMemo, - environment: { _ in Void() } + environment: { $0 } ) private static let transactionAddressInputReducer: SendFlowReducer = AnyTransactionAddressTextFieldReducer { _ in diff --git a/secant/UI Components/CheckCircle/CheckCircleStore.swift b/secant/UI Components/CheckCircle/CheckCircleStore.swift index c25d573..af1b720 100644 --- a/secant/UI Components/CheckCircle/CheckCircleStore.swift +++ b/secant/UI Components/CheckCircle/CheckCircleStore.swift @@ -9,20 +9,17 @@ import Foundation import ComposableArchitecture import SwiftUI -typealias CheckCircleReducer = Reducer -typealias CheckCircleStore = Store -typealias CheckCircleViewStore = ViewStore +typealias CheckCircleStore = Store +typealias CheckCircleViewStore = ViewStore -// MARK: - Action +struct CheckCircleReducer: ReducerProtocol { + typealias State = Bool + + enum Action: Equatable { + case updateIsChecked + } -enum CheckCircleAction: Equatable { - case updateIsChecked -} - -// MARK: - Reducer - -extension CheckCircleReducer { - static let `default` = CheckCircleReducer { state, action, _ in + func reduce(into state: inout State, action: Action) -> ComposableArchitecture.EffectTask { switch action { case .updateIsChecked: state.toggle() @@ -37,8 +34,7 @@ extension CheckCircleStore { static func mock(isChecked: Bool) -> CheckCircleStore { return CheckCircleStore( initialState: isChecked, - reducer: .default, - environment: Void() + reducer: CheckCircleReducer() ) } } @@ -48,7 +44,6 @@ extension CheckCircleStore { extension CheckCircleViewStore { static let placeholder = CheckCircleStore( initialState: true, - reducer: .default, - environment: Void() + reducer: CheckCircleReducer() ) }