@@ -5,25 +5,30 @@ class DataState<T> with EquatableMixin {
55 final bool isLoading;
66 final DataException ? exception;
77 final StackTrace ? stackTrace;
8+ final String ? message;
89
910 const DataState (
1011 this .model, {
1112 this .isLoading = false ,
1213 this .exception,
1314 this .stackTrace,
15+ this .message,
1416 });
1517
1618 bool get hasException => exception != null ;
1719
1820 bool get hasModel => model != null ;
1921
22+ bool get hasMessage => message != null ;
23+
2024 DataState <T > merge (DataState <T > value) {
2125 // only optional values do not get overwritten
2226 return DataState (
2327 value.model,
2428 isLoading: value.isLoading,
2529 exception: value.exception ?? exception,
2630 stackTrace: value.stackTrace ?? stackTrace,
31+ message: value.message ?? message,
2732 );
2833 }
2934
@@ -53,12 +58,12 @@ class DataException with EquatableMixin implements Exception {
5358class DataStateNotifier <T > extends StateNotifier <DataState <T >> {
5459 DataStateNotifier ({
5560 required DataState <T > data,
56- Future <void > Function ()? reload,
61+ Future <void > Function (DataStateNotifier < T > notifier )? reload,
5762 }) : _reloadFn = reload,
5863 super (data);
5964
6065 // ignore: prefer_final_fields
61- Future <void > Function ()? _reloadFn;
66+ Future <void > Function (DataStateNotifier < T > )? _reloadFn;
6267 void Function ()? onDispose;
6368
6469 DataState <T > get data => super .state;
@@ -68,6 +73,7 @@ class DataStateNotifier<T> extends StateNotifier<DataState<T>> {
6873 bool ? isLoading,
6974 Object ? exception = stamp,
7075 Object ? stackTrace = stamp,
76+ Object ? message = stamp,
7177 }) {
7278 super .state = DataState <T >(
7379 model == stamp ? state.model : model as T ,
@@ -76,11 +82,12 @@ class DataStateNotifier<T> extends StateNotifier<DataState<T>> {
7682 exception == stamp ? state.exception : exception as DataException ? ,
7783 stackTrace:
7884 stackTrace == stamp ? state.stackTrace : stackTrace as StackTrace ? ,
85+ message: message == stamp ? state.message : message as String ? ,
7986 );
8087 }
8188
8289 Future <void > reload () async {
83- return _reloadFn? .call ();
90+ return _reloadFn? .call (this );
8491 }
8592
8693 @override
0 commit comments