changeNotifierAtom<T, N extends ChangeNotifier> function
AtomWithParent<T, Atom<N> >
changeNotifierAtom<T, N extends ChangeNotifier>(
- AtomReader<
N> create, - T select(
- N notifier
Create an AtomWithParent for a ChangeNotifier, which exposes a value
using the given select
function.
Implementation
AtomWithParent<T, Atom<N>> changeNotifierAtom<T, N extends ChangeNotifier>(
AtomReader<N> create,
T Function(N notifier) select,
) =>
atomWithParent(atom((get) {
final notifier = create(get);
get.onDispose(notifier.dispose);
return notifier;
}), (get, parent) {
final notifier = get(parent);
void onChange() => get.setSelf(select(notifier));
notifier.addListener(onChange);
get.onDispose(() => notifier.removeListener(onChange));
return select(notifier);
});