onDispose method
Add code block that tied with running system's disposer.
It will register a dispose
callback into system, this callback will
be invoked right after running system dispose.
Usage Example
final controller = SomeController(); // somewhere within same scope
...
system
...
.onDispose(
run: () => controller.dispose(),
)
...
Above code will dispose controller
if system is disposing.
Implementation
System<State, Event> onDispose({
required void Function() run
}) => copy((localRun) => ({reduce, effect, interceptor}) {
final disposer = Disposer(run);
final sourceDisposer = localRun(reduce: reduce, effect: effect, interceptor: interceptor);
return Disposer(() {
sourceDisposer();
disposer();
});
});