Last updated:
0 purchases
mobx utils
MobX-utils #
Utility functions and common patterns for MobX
This package provides utility functions and common MobX patterns build on top of MobX. It is encouraged to take a peek under the hood and read the sources of these utilities. Feel free to open a PR with your own utilities. For large new features, please open an issue first.
API #
lazyObservable #
lazyObservable creates an observable around a fetch method that will not be invoked until the observable is needed the first time. The fetch method receives a sink callback which can be used to replace the current value of the lazyObservable. It is allowed to call sink multiple times to keep the lazyObservable up to date with some external resource.
Note that it is the current call itself which is being tracked by MobX, so make sure that you don't dereference to early.
Examples #
final userProfile = lazyObservable(
(sink) => fetch("/myprofile").then((profile) => sink(profile))
);
// use the userProfile in a Flutter widget:
const profile = Observer(builder: (_) =>
userProfile.current == null
? Text('Loading user profile')
: Text(userProfile.current.displayName)
);
// triggers refresh the userProfile
userProfile.refresh();
copied to clipboard
queueProcessor #
queueProcessor takes an ObservableList, observes it and calls processor once for each item added to the observable array, optionally debouncing the action
Examples #
final pendingNotifications = ObservableList.of([]);
final stop = queueProcessor(pendingNotifications, (msg) {
// show Desktop notification
return Notification(msg);
});
// usage:
pendingNotifications.add("test!");
copied to clipboard
Returns ReactionDisposer stops the processor
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.