From 410de3bfa24a53c619cb334941fabac9929cc1ac Mon Sep 17 00:00:00 2001 From: Lukas Korba Date: Sat, 5 Nov 2022 08:10:06 +0100 Subject: [PATCH] [#451] Migrate Welcome to ReducerProtocol (#458) - Welcome migrated to ReducerProtocol - snapshot test fixed --- secant/Features/App/AppStore.swift | 12 ++++-- secant/Features/Welcome/WelcomeStore.swift | 37 ++++++------------- .../WelcomeSnapshotTests.swift | 3 +- 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/secant/Features/App/AppStore.swift b/secant/Features/App/AppStore.swift index caa0cfa..7631fb4 100644 --- a/secant/Features/App/AppStore.swift +++ b/secant/Features/App/AppStore.swift @@ -8,6 +8,7 @@ typealias AppViewStore = ViewStore typealias AnyRecoveryPhraseDisplayReducer = AnyReducer typealias AnyRecoveryPhraseValidationFlowReducer = AnyReducer +typealias AnyWelcomeReducer = AnyReducer // MARK: - State @@ -31,7 +32,7 @@ struct AppState: Equatable { var internalRoute: Route = .welcome var sandboxState: SandboxState var storedWallet: StoredWallet? - var welcomeState: WelcomeState + var welcomeState: WelcomeReducer.State var route: Route { get { internalRoute } @@ -61,7 +62,7 @@ enum AppAction: Equatable { case respondToWalletInitializationState(InitializationState) case sandbox(SandboxAction) case updateRoute(AppState.Route) - case welcome(WelcomeAction) + case welcome(WelcomeReducer.Action) } // MARK: - Environment @@ -416,10 +417,13 @@ extension AppReducer { environment: { _ in SandboxEnvironment() } ) - private static let welcomeReducer: AppReducer = WelcomeReducer.default.pullback( + private static let welcomeReducer: AppReducer = AnyWelcomeReducer { _ in + WelcomeReducer() + } + .pullback( state: \AppState.welcomeState, action: /AppAction.welcome, - environment: { _ in WelcomeEnvironment() } + environment: { $0 } ) } diff --git a/secant/Features/Welcome/WelcomeStore.swift b/secant/Features/Welcome/WelcomeStore.swift index 42458a7..6374dd5 100644 --- a/secant/Features/Welcome/WelcomeStore.swift +++ b/secant/Features/Welcome/WelcomeStore.swift @@ -8,28 +8,16 @@ import Foundation import ComposableArchitecture -typealias WelcomeReducer = Reducer -typealias WelcomeStore = Store -typealias WelcomeViewStore = ViewStore +typealias WelcomeStore = Store -// MARK: - State - -struct WelcomeState: Equatable {} - -// MARK: - Action - -enum WelcomeAction: Equatable { - case debugMenuStartup -} - -// MARK: - Environment - -struct WelcomeEnvironment { } - -// MARK: - Reducer - -extension WelcomeReducer { - static let `default` = WelcomeReducer { _, _, _ in +struct WelcomeReducer: ReducerProtocol { + struct State: Equatable {} + + enum Action: Equatable { + case debugMenuStartup + } + + func reduce(into state: inout State, action: Action) -> ComposableArchitecture.EffectTask { return .none } } @@ -39,13 +27,12 @@ extension WelcomeReducer { extension WelcomeStore { static var demo = WelcomeStore( initialState: .placeholder, - reducer: .default, - environment: WelcomeEnvironment() + reducer: WelcomeReducer() ) } // MARK: - Placeholders -extension WelcomeState { - static let placeholder = WelcomeState() +extension WelcomeReducer.State { + static let placeholder = WelcomeReducer.State() } diff --git a/secantTests/SnapshotTests/WelcomeSnapshotTests/WelcomeSnapshotTests.swift b/secantTests/SnapshotTests/WelcomeSnapshotTests/WelcomeSnapshotTests.swift index accfdd3..be361b1 100644 --- a/secantTests/SnapshotTests/WelcomeSnapshotTests/WelcomeSnapshotTests.swift +++ b/secantTests/SnapshotTests/WelcomeSnapshotTests/WelcomeSnapshotTests.swift @@ -13,8 +13,7 @@ class WelcomeSnapshotTests: XCTestCase { func testWelcomeSnapshot() throws { let store = Store( initialState: .placeholder, - reducer: WelcomeReducer.default, - environment: WelcomeEnvironment() + reducer: WelcomeReducer() ) addAttachments(WelcomeView(store: store))