[#471] Migrate CheckCircle to ReducerProtocol (#479)

- CheckCircle migrated to ReducerProtocol
- project files rearangement
This commit is contained in:
Lukas Korba 2022-11-07 12:01:09 +01:00 committed by GitHub
parent be558f00be
commit 1bba7d0d16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 20 deletions

View File

@ -770,8 +770,8 @@
346D41E228DF0B0900963F36 /* CheckCircle */ = {
isa = PBXGroup;
children = (
346D41E328DF0B8600963F36 /* CheckCircle.swift */,
346715A428E2027D0035F7C4 /* CheckCircleStore.swift */,
346D41E328DF0B8600963F36 /* CheckCircle.swift */,
);
path = CheckCircle;
sourceTree = "<group>";

View File

@ -19,6 +19,7 @@ typealias AnyTransactionAddressTextFieldReducer = AnyReducer<
SendFlowEnvironment
>
typealias AnyMultiLineTextFieldReducer = AnyReducer<MultiLineTextFieldReducer.State, MultiLineTextFieldReducer.Action, SendFlowEnvironment>
typealias AnyCheckCircleReducer = AnyReducer<Bool, CheckCircleReducer.Action, SendFlowEnvironment>
// 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

View File

@ -9,20 +9,17 @@ import Foundation
import ComposableArchitecture
import SwiftUI
typealias CheckCircleReducer = Reducer<Bool, CheckCircleAction, Void>
typealias CheckCircleStore = Store<Bool, CheckCircleAction>
typealias CheckCircleViewStore = ViewStore<Bool, CheckCircleAction>
typealias CheckCircleStore = Store<Bool, CheckCircleReducer.Action>
typealias CheckCircleViewStore = ViewStore<Bool, CheckCircleReducer.Action>
// 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<Action> {
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()
)
}