state_extended 3.3.0 state_extended: ^3.3.0 copied to clipboard
The State Class is extended with State object controllers and lifecycle events.
3.3.0 #
- Record any errors in initAsync()
3.2.2+3 #
- StateX's FutureBuilder will only run once. _ranAsync changed the widget tree and so replaced with _future = runAsync();
3.2.1 #
- StateX's FutureBuilder should only run once. _ranAsync ? buildF(context) : FutureBuilder
3.2.0+1 #
- Removed the StateListeners mixin
3.1.0 #
- Introduced runAsync() in FutureBuilderStateMixin to allow initAsync() to run repeatedly.
3.0.0 #
May 01, 2023
- AppStateX can take in multiple instances of the same Controller class
- AppStateX has controllerById() to retrieve such instances.
- StateX can only take in single instances of a Controller class.
- StateX has controllerByType() to retrieve by class type.
- AppStateX controllers are available to all StateX objects in the app.
- _initAsync() in FutureBuilderStateMixin was incorrect!
2.8.0+1 #
March 26, 2023
- mixin StateListener implements RouteAware
- void didChangeLocales(List
- Include tests for the class RouteAware
2.7.1 #
March 15, 2023
- didChangeAccessibilityFeatures corrected to include _setStateAllowed
- Add further testing of the source code
2.7.0+3 #
March 15, 2023
- Removed bool get inFlutterTester so to be Web compatible
- Introduce void didChangeLocales(List
- Continued to increase the testing coverage over the source code
2.6.0 #
March 11, 2023
- bool get isEndState now used to determine if the 'latest' State object.
- Only the 'latest' State object is rebuilt with setState() after a system event.
2.5.4+1 #
March 09, 2023
- didChangeLocale(Locale? locales) to didChangeLocales(List
- Introduced system event indicator: bool get hadSystemEvent
- _rebuildRequested removed
- Adjusting further testing
2.5.3+4 #
March 08, 2023
- Bugfix. setState() no longer called in System events.
- Kept updateNewStateX() as it may be useful in special circumstances.
- Added further testing
2.5.2 #
March 06, 2023
- System events from WidgetsBinding.instance.addObserver(this); destroys current State object!
- Introduced updateNewStateX() to compensate for destroyed current State object.
- Corrected FutureBuilderStateMixin with _initAsync()
- i.e. Run the StateX object's initAsync() until it returns true
2.5.1+7 #
March 04, 2023
- StateX.notifyClients() was corrected.
- Replace buildChild() function with buildIn() function
- Updated example app in README.md
- testEventHandling(tester); in testing
- Added further testing
2.5.0+2 #
February 27, 2023
- RecordExceptionMixin stores the last error
- onAsyncError() no longer returns boolean
- Removed getter, Map<String, StateXController> get map
- bool forEach(void Function(StateXController con) func, {bool? reversed}) {
- bool forEachState(void Function(StateX state) func, {bool? reversed}) {
- startState and endState introduced to the StateX class
- WidgetsBinding.instance in activate() & deactivate()
- Incrementally adding tests for a higher percentage in Codecov
2.4.0 #
February 21, 2023
- Replace buildWidget() function with buildF() function
2.3.0 #
February 17, 2023
- onError(FlutterErrorDetails details) removed from the StateX class It was been proven ineffective and instead degraded performance.
- Corrected the 'Hello!' Example App
2.2.0+1 #
February 15, 2023
- Updated example app
- Deprecated refreshLastState() for rebuildLastState()
2.1.1 #
February 04, 2023
- Corrected getter rootState => RootState._rootStateX;
- refreshLastState() function now in AppStateX
2.1.0 #
January 23, 2023
- class _AppInheritedElement allows for better debugging
2.0.0 #
January 18, 2023
- BREAKING CHANGE Renamed remove() to bool removeByKey(String keyId) {
- included void didUpdateWidget(Page1 oldWidget) { in example app
- New function: String remove(StateXController? controller) {
1.1.0+01 #
September 16, 2022
- buildInherited() and refresh() are deprecated.
- Corrected the widget_test.dart. notifyClients() to setState()
1.0.0 #
September 10, 2022
- Production release
0.8.0+02 #
August 18, 2022
- Removed inappropriate class Swx
- StateSetter from class to mixin
- Updated and corrected README.md
0.7.0 #
August 16, 2022
- New example app: counter_app.dart
- New: class Swx extends StatefulWidget {
0.6.0 #
July 24, 2022
- Removed getter inheritedStatefulWidget
- Call initInheritedState() in buildWidget()
- Merged mixin InheritedStateMixin with InheritedStateX
0.5.0 #
July 22, 2022
- Renamed text from 'mvc_pattern.dart' to 'state_extended.dart'
- Removed void refresh() => setState(() {});
- Enhanced example apps with demonstration code.
0.4.0+02 #
July 15, 2022
- Removed the refresh() function
- Removed the class, StateXModel
- call _states.clear() in AppStateX
- Updated README.md
- Updated test scripts
0.3.0 #
July 11, 2022
- Changed keyId to identifier in mixin StateListener
0.2.0 #
July 10, 2022
- Removed abstract class AppStatefulWidget
- abstract class AppStateX
- if (!notify) { /// if the 'object' value has changed. notify = dataObject != oldWidget.dataObject; }
0.1.0 #
July 07, 2022
- Initial commit