states_rebuilder 1.7.0
states_rebuilder: ^1.7.0 copied to clipboard
a simple yet powerful state management technique for Flutter
1.7.0 - 2019-11-14 #
1- Add onSetState parameter to the setState method to define a callback to be executed after state mutation.
The callBack takes the context so you can push/pop routes, show dialogs or snackBar. (see example folder).
2- Add catchError parameter to the setState method to define whether to catch error while mutining the state or not.(see example folder). If an error is thrown, hasError getter is true and the error can be obtained via the error getter (see point 5 below).
3- Add the getter connectionState to the ModelStatesRebuilder<T>to get the asynchronous status of the state. it can be ConnectionState.none before executing the Future, ConnectionState.waiting while waiting for the Future and ConnectionState.done after resolving the Future.
4- Add the field stateStatus to the ModelStatesRebuilder<T> class. It allows defining a custom status of the state other than those defined by the connectionState getter.
5- add the getter hasError, hasData and error to the ModelStatesRebuilder<T> class.
6- Change the name blocs to models.
7- Refactor the code and fix bugs.
8- Update docs and examples.
1.6.1 - 2019-10-22 #
- Add
watchparameter tosetStatemethod andInject.streamconstructor.watchallows to link the rebuild process to the variation of a set of variables. - Update docs
1.6.0+1 - 2019-10-18 #
- Add
Injector.getAsModelmethod. When called with the context parameter, the calling widget is automatically registered as a listener. - Add
setState(Function(state))to mutate the state and update the dependent the views from the UI. - Model class have not to extend
StatesRebuilderto get reactivity. - Add the named constructor
Inject.futurewhich take a future and update dependents when future completes. - Add the named constructor
Inject.streamwhich take a steam and update dependents when stream emits a value. Injector.getorInjector.getAsModelnow throws if no registered model is found. This can be silent by setting the parametersilentto true- Injected model ara lazily instantiated. To do otherwise set the parameter
isLazyof theInjectwidget to false.
1.5.1 - 2019-09-14 #
- add
afterInitialBuildandafterRebuildparameters to theStateBuilder,StateWithMixinBuilderandInjectorwidgets.afterInitialBuildandafterRebuild` are callBack to be executed after the widget is mounted and after each rebuild.
1.5.0+1 - 2019-09-12 #
- Use
ObservableServiceandhasStateinstead ofObservableandhasObserver, because the latters are widely used and can lead to conflict
1.5.0 - 2019-09-06 #
- Add
hasStatesgetter to check if the StatesRebuilder object has listener. - Add
injectparameter to theInjectorwidget as an alternative to themodelsparameter. Withinjectyou can register models using interface Type. - Add
observableinterface. Any service class can implement it to notify any ViewModel to rebuild its corresponding view. - Refactor the library to make it design patterns wise and hence make it testable.
- Test the library
1.3.2 - 2019-06-24 #
- Add
appLifeCycleargument to Injector to track the life cycle of the app. - Refactor the code.
1.3.1 - 2019-06-13 #
- remove
rebuildFromStreams. - Initial release of
Streamingclass - The builder closure of the
Injectortakes (BuildContext context, T model) where T is the generic type. - Fix typos
1.3.0 - 2019-06-04 #
- Initial release of
rebuildFromStreamsmethod. - Initial release of
Injectorfor Dependency Injection. - deprecate blocs parameter and use viewModels instead
- StateBuilder can have many tags.
1.2.0 - 2019-05-23 #
- Remove
stateIDand replace it bytagparameter.tagis optional and many widgets can have the same tag. rebuildStates()when called without parameters, it rebuilds all widgets that are wrapped withStateBuilderandStateWithMixinBuilder.- Each
StateBuilderhas an automatically generated cached address. It is stored in the second parameter of thebuilder,initState,dispose, and other closures. You can call it inside the closures to rebuild that particular widget. - add
StateWithMixinBuilderwidget to account for some of the most used mixins. - Optimize the code and improve performance
1.1.0 - 2019-05-13 #
- Add
withTickerProviderparameter toStateBuilderwidget.
1.0.0 - 2019-05-12 #
- Add
BlocProviderto provide your BloCs. - You can use enums to name your
StateBuilderwidgets. rebuildStatesnow has only one positioned parameter of List- If
rebuildStatesis given without parameter, it will rebuild all widgets that havestateID. - improve performance.
0.1.4 #
- improve performance
0.1.3 #
- Add getter and setter for the stateMap.
0.1.2 #
- Remove print statements
0.1.1 #
- Change readme.md of the example
0.1.0 #
- Initial version