showKDialogWithLoadingMessage function
Future<void Function()>
showKDialogWithLoadingMessage(
- BuildContext context, {
- String message = "",
- TextStyle textStyle = const TextStyle(color: Colors.black38, fontSize: 14, height: 1.2),
returns a function with which we can finish the loading process.
Implementation
Future<void Function()> showKDialogWithLoadingMessage(
BuildContext context, {
String message = "",
TextStyle textStyle =
const TextStyle(color: Colors.black38, fontSize: 14, height: 1.2),
}) async {
message = message.isNotEmpty ? message : strings.loadingDialogMessage;
final completer = Completer<void Function()>();
showDialog(
context: context,
barrierDismissible: false,
builder: (context) {
dismiss() => Navigator.of(context).pop();
if (!completer.isCompleted) completer.complete(dismiss);
return PopScope(
canPop: false,
child: AlertDialog(
contentPadding: const EdgeInsets.all(24),
content: SizedBox(
width: double.maxFinite,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const CircularProgressIndicator(),
const SizedBox(width: 20.0),
Expanded(
child: Text(
message,
style: textStyle,
),
),
],
),
),
),
);
},
);
return completer.future;
}