diff --git a/RadixWallet/Features/DappInteractionFeature/Interactor/DappInteractor.swift b/RadixWallet/Features/DappInteractionFeature/Interactor/DappInteractor.swift index 1153d365fd..0f0a51393a 100644 --- a/RadixWallet/Features/DappInteractionFeature/Interactor/DappInteractor.swift +++ b/RadixWallet/Features/DappInteractionFeature/Interactor/DappInteractor.swift @@ -248,8 +248,7 @@ struct DappInteractor: Sendable, FeatureReducer { } case .dappInteractionCompletion(.delegate(.dismiss)): - state.destination = nil - return delayedMediumEffect(internal: .presentQueuedRequestIfNeeded) + return onCompletionScreenDismissed(&state) case let .responseFailure(action): switch action { @@ -278,6 +277,15 @@ struct DappInteractor: Sendable, FeatureReducer { } } + func reduceDismissedDestination(into state: inout State) -> Effect { + switch state.destination { + case .dappInteractionCompletion: + onCompletionScreenDismissed(&state) + default: + .none + } + } + func presentQueuedRequestIfNeededEffect( for state: inout State ) -> Effect { @@ -347,6 +355,11 @@ struct DappInteractor: Sendable, FeatureReducer { state.requestQueue.remove(id: request.id) state.destination = nil } + + func onCompletionScreenDismissed(_ state: inout State) -> Effect { + state.destination = nil + return delayedMediumEffect(internal: .presentQueuedRequestIfNeeded) + } } extension DappInteractionClient.ValidatedDappRequest.InvalidRequestReason {