stateMachine<S, E> function
StateMachineReacton<S, E>
stateMachine<S, E>({
- required S initial,
- required Map<
S, Map< transitions,E, TransitionHandler< >S> > - Map<
E, TransitionGuard< ? guards,S> > - TransitionEffect<
S> ? onTransition, - String? name,
- ReactonOptions<
S> ? options,
Create a state machine reacton with typed states and events.
final authMachine = stateMachine<AuthState, AuthEvent>(
initial: AuthState.loggedOut,
transitions: {
AuthState.loggedOut: {
AuthEvent.login: (ctx) async => AuthState.authenticated,
},
AuthState.authenticated: {
AuthEvent.logout: (ctx) => AuthState.loggedOut,
},
},
name: 'auth',
);
Implementation
StateMachineReacton<S, E> stateMachine<S, E>({
required S initial,
required Map<S, Map<E, TransitionHandler<S>>> transitions,
Map<E, TransitionGuard<S>>? guards,
TransitionEffect<S>? onTransition,
String? name,
ReactonOptions<S>? options,
}) {
return StateMachineReacton<S, E>(
initial: initial,
transitions: transitions,
guards: guards,
onTransition: onTransition,
name: name,
options: options,
);
}