StatefulDataMonitor<A> constructor
StatefulDataMonitor<A> ({
- Key? key,
- dynamic onSuccess()?,
- dynamic onError()?,
- required StatefulData selector(
- BuildContext,
- A
- required ValueWidgetBuilder<
StatefulData> builder,
Implementation
StatefulDataMonitor({
Key? key,
Function(StatefulData)? onSuccess,
Function(String)? onError,
required StatefulData Function(BuildContext, A) selector,
required ValueWidgetBuilder<StatefulData> builder,
}) : assert(selector != null),
super(
key: key,
builder: (context, viewState, child) {
print(viewState.toString());
if(!viewState.consume) {
switch(viewState.state) {
case DataState.loading:
EasyLoading.show(status: viewState.loadingMessage, maskType: EasyLoadingMaskType.clear);
break;
case DataState.success:
EasyLoading.dismiss();
break;
case DataState.error:
EasyLoading.dismiss();
break;
case DataState.progress:
WidgetsBinding.instance!.addPostFrameCallback((_){
EasyLoading.showProgress(viewState.progress,
status: '${(viewState.progress * 100).toStringAsFixed(0)}%', maskType: EasyLoadingMaskType.clear);
});
break;
case DataState.empty:
// TODO: Handle this case.
break;
case DataState.complete:
EasyLoading.dismiss();
break;
}
viewState.consume = true;
}
return builder(context, viewState, child);
},
selector: (context) => selector(context, Provider.of(context)),
);