Skip to content

Commit ce2ef2a

Browse files
committed
Fix RouteMapping + handler.
1 parent 2c9844f commit ce2ef2a

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

Sources/Machine.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,11 +381,14 @@ public class Machine<S: StateType, E: EventType>
381381
let routeDisposable = self.addRouteMapping(routeMapping)
382382

383383
let handlerDisposable = self._addHandler(event: .Any, order: order) { context in
384-
guard let event = context.event else { return }
385384

386-
if self._hasRouteMappingInDict(event: event, fromState: context.fromState, toState: .Some(context.toState), userInfo: context.userInfo) != nil {
387-
handler(context)
385+
guard let preferredToState = routeMapping(event: context.event, fromState: context.fromState, userInfo: context.userInfo)
386+
where preferredToState == context.toState else
387+
{
388+
return
388389
}
390+
391+
handler(context)
389392
}
390393

391394
return ActionDisposable.init {

Sources/StateMachine.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,9 +464,16 @@ public final class StateMachine<S: StateType, E: EventType>: Machine<S, E>
464464
let routeDisposable = self.addStateRouteMapping(routeMapping)
465465

466466
let handlerDisposable = self.addHandler(.Any => .Any) { context in
467-
if self._hasRouteMappingInDict(fromState: context.fromState, toState: context.toState, userInfo: context.userInfo) != nil {
468-
handler(context)
467+
468+
guard context.event == nil else { return }
469+
470+
guard let preferredToStates = routeMapping(fromState: context.fromState, userInfo: context.userInfo)
471+
where preferredToStates.contains(context.toState) else
472+
{
473+
return
469474
}
475+
476+
handler(context)
470477
}
471478

472479
return ActionDisposable.init {

0 commit comments

Comments
 (0)