@@ -50,7 +50,8 @@ public final class FlowCoordinator: NSObject {
50
50
self ? . childFlowCoordinators. removeAll ( )
51
51
self ? . parentFlowCoordinator? . childFlowCoordinators. removeValue ( forKey: self ? . identifier ?? " " )
52
52
} )
53
- . flatMapLatest { flow. adapt ( step: $0) }
53
+ . asSignal ( onErrorJustReturn: NoneStep ( ) )
54
+ . flatMapLatest { flow. adapt ( step: $0) . asSignal ( onErrorJustReturn: NoneStep ( ) ) }
54
55
. do ( onNext: { [ weak self] in self ? . willNavigateRelay. accept ( ( flow, $0) ) } )
55
56
. map { return ( flowContributors: flow. navigate ( to: $0) , step: $0) }
56
57
. do ( onNext: { [ weak self] in self ? . didNavigateRelay. accept ( ( flow, $0. step) ) } )
@@ -77,8 +78,9 @@ public final class FlowCoordinator: NSObject {
77
78
. do ( onNext: { [ weak self] presentableAndSteppers in
78
79
self ? . setReadiness ( for: flow, basedOn: presentableAndSteppers. map { $0. presentable } )
79
80
} )
80
- // transforms a FlowContributors in a sequence of individual FlowContributor
81
+
81
82
. flatMap { Signal . from ( $0) }
83
+ // transforms a FlowContributors in a sequence of individual FlowContributor
82
84
// the FlowContributor is related to a new Flow, we coordinate this new Flow
83
85
. do ( onNext: { [ weak self] presentableAndStepper in
84
86
if let childFlow = presentableAndStepper. presentable as? Flow {
@@ -96,6 +98,7 @@ public final class FlowCoordinator: NSObject {
96
98
. flatMap { [ weak self] in
97
99
self ? . steps ( from: $0, within: flow, allowStepWhenDismissed: allowStepWhenDismissed) ?? Signal . empty ( )
98
100
}
101
+ . asObservable ( )
99
102
. take ( until: allowStepWhenDismissed ? . empty( ) : flow. rxDismissed. asObservable ( ) )
100
103
. asSignal ( onErrorJustReturn: NoneStep ( ) )
101
104
. emit ( to: self . stepsRelay)
0 commit comments