customDialog<T> static method
Future<T?>
customDialog<
T>({ - required BuildContext context,
- required Widget content,
- String? title,
- bool autoPop = true,
- bool barrierDismissible = true,
- dynamic onSubmit()?,
- dynamic onCancel()?,
- String okBtnText = 'SUBMIT',
})
Implementation
static Future<T?> customDialog<T>({
required final BuildContext context,
required final Widget content,
final String? title,
final bool autoPop = true,
final bool barrierDismissible = true,
final Function()? onSubmit,
final Function()? onCancel,
final String okBtnText = 'SUBMIT',
}) {
void _doSubmit() {
if (autoPop) Navigator.of(context).pop();
if (onSubmit != null) onSubmit();
}
return showDialog<T>(
context: context,
barrierDismissible: barrierDismissible,
builder: (BuildContext context) => AlertDialog(
contentPadding: const EdgeInsets.all(6.0),
titlePadding:
const EdgeInsets.only(top: 20, bottom: 10, right: 15, left: 15),
title: Text(title ?? '',
style: const TextStyle(fontWeight: FontWeight.bold)),
content: content,
actionsOverflowDirection: VerticalDirection.down,
actions: [
TextButton(
child: const Text('CANCEL'),
onPressed: () {
Navigator.of(context).pop();
if (onCancel != null) onCancel();
},
),
TextButton(
child: Text(okBtnText),
onPressed: () => _doSubmit(),
),
],
),
);
}