strictDialog function

Future<DialogAction> strictDialog(
  1. {required BuildContext context,
  2. String? title,
  3. String? body}
)

Implementation

Future<DialogAction> strictDialog({
  required BuildContext context,
  String? title,
  String? body,
}) async {
  final dialogFormKey = GlobalKey<FormState>();
  final DialogAction? action = await showDialog(
    context: context,
    barrierDismissible: false,
    builder: (BuildContext context) {
      return Form(
        key: dialogFormKey,
        child: AlertDialog(
          title: Text(title!),
          content: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            mainAxisSize: MainAxisSize.min,
            children: [
              Text(body!),
              LandingFormField(
                hintText: t.generics.delete,
                validator: (String? value) {
                  return equalsDelete(value);
                },
              ),
            ],
          ),
          actions: [
            TextButton(
              onPressed: () => Navigator.of(context).pop(DialogAction.abort),
              child: Text(t.generics.no),
            ),
            TextButton(
              onPressed: () {
                if (dialogFormKey.currentState!.validate()) {
                  Navigator.of(context).pop(DialogAction.yes);
                }
              },
              child: Text(t.generics.yes),
            ),
          ],
        ),
      );
    },
  );
  return (action != null) ? action : DialogAction.abort;
}