future<T> static method
Future
future<T>(
- BuildContext context, {
- required Future future,
- DialogStyle? dialogStyle,
- double? blur,
- Color? backgroundColor,
- OnProgressError? onProgressError,
- OnProgressFinish? onProgressFinish,
- OnProgressCancel? onProgressCancel,
- Function? onDismiss,
- bool? dismissable,
- Widget? message,
- Widget? title,
- Widget? cancelText,
- Widget? progressWidget,
- DialogTransitionType? dialogTransitionType,
- Duration? transitionDuration,
- bool useSafeArea = true,
future function let you show ProgressDialog until future (param) reach the end of its action
Implementation
static Future future<T>(
BuildContext context, {
required Future future,
DialogStyle? dialogStyle,
double? blur,
Color? backgroundColor,
OnProgressError? onProgressError,
OnProgressFinish? onProgressFinish,
OnProgressCancel? onProgressCancel,
Function? onDismiss,
bool? dismissable,
Widget? message,
Widget? title,
Widget? cancelText,
Widget? progressWidget,
DialogTransitionType? dialogTransitionType,
Duration? transitionDuration,
bool useSafeArea = true,
}) async {
ProgressDialog pDialog = ProgressDialog(
context,
message: message,
title: title,
dismissable: dismissable,
backgroundColor: backgroundColor,
onDismiss: onDismiss,
dialogStyle: dialogStyle,
blur: blur,
defaultLoadingWidget: progressWidget,
cancelText: cancelText,
onCancel: onProgressCancel != null ? onProgressCancel : null,
dialogTransitionType: dialogTransitionType,
transitionDuration: transitionDuration,
);
pDialog.show(useSafeArea: useSafeArea);
var output;
await future.then((data) {
if (onProgressFinish != null) onProgressFinish = onProgressFinish!(data);
output = data;
pDialog.dismiss();
}).catchError((error) {
if (onProgressError != null) onProgressError = onProgressError!(error);
pDialog.dismiss();
});
return output;
}