diff --git a/ElementX/Sources/FlowCoordinators/SpaceFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/SpaceFlowCoordinator.swift index 77c2fd4fd..90da8c2c8 100644 --- a/ElementX/Sources/FlowCoordinators/SpaceFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/SpaceFlowCoordinator.swift @@ -244,6 +244,16 @@ class SpaceFlowCoordinator: FlowCoordinatorProtocol { selectedSpaceRoomSubject.send(nil) } + stateMachine.addRouteMapping { event, fromState, _ in + guard case .startRoomFlow = event, case .roomFlow = fromState else { + return nil + } + + return fromState + } handler: { _ in + // Ignore tapping on multiple rooms at the same time + } + stateMachine.addRouteMapping { event, fromState, _ in guard case .startRoomFlow = event, case .space = fromState else { return nil } return .roomFlow(previousState: fromState) @@ -331,6 +341,14 @@ class SpaceFlowCoordinator: FlowCoordinatorProtocol { stateMachine.addErrorHandler { context in fatalError("Unexpected transition: \(context)") } + + stateMachine.addAnyHandler(.any => .any) { context in + if let event = context.event { + MXLog.info("Transitioning from `\(context.fromState)` to `\(context.toState)` with event `\(event)`") + } else { + MXLog.info("Transitioning from \(context.fromState)` to `\(context.toState)`") + } + } } private func presentSpace() {