stateMachineAtom<S, SM extends StateMachineBase<S>> function

AtomWithParent<S, Atom<SM>> stateMachineAtom<S, SM extends StateMachineBase<S>>(
  1. AtomReader<SM> create
)

Implementation

AtomWithParent<S, Atom<SM>> stateMachineAtom<S, SM extends StateMachineBase<S>>(
  AtomReader<SM> create,
) =>
    atomWithParent(atom((get) {
      final sm = create(get);
      get.onDispose(sm.close);
      return sm;
    }), (get, parent) {
      final sm = get(parent);
      get.onDispose(sm.stream.listen(get.setSelf).cancel);
      return sm.state;
    });