runRootCore<Event> function
void
runRootCore<Event>({
- required WidgetMachineLayerType<
Event, dynamic, dynamic> main, - required Set<
MachineLayerType< secondary,Event, dynamic, dynamic> >
Starts the application flow.
main
- main layer.
secondary
- secondary layers.
Implementation
void runRootCore<Event>({
required WidgetMachineLayerType<Event, dynamic, dynamic> main,
required Set<MachineLayerType<Event, dynamic, dynamic>> secondary,
}) {
final WidgetMachine<Event, Event> mainMachine = main._child();
final Iterable<Machine<Event, Event>> secondaryMachines = secondary
.map((MachineLayerType<Event, dynamic, dynamic> e) => e._child());
final Set<Machine<Event, Event>> machines = List<Machine<Event, Event>>.from(
secondaryMachines,
).toSet();
final WidgetMachine<Event, Event> root = mergeWidgetMachine(
main: mainMachine,
secondary: machines,
).redirect(
(Event output) => Direction<Event>.back(Ward<Event>.single(output)),
);
runRootMachine<Event, Event>(root);
}