confirm<T> static method

Future<T?> confirm<T>(
  1. BuildContext context, {
  2. String title = "Confirmation",
  3. String content = "",
  4. required ButtonWidget okButton,
  5. ButtonWidget? cancelButton,
  6. bool barrierDismisable = true,
})

Implementation

static Future<T?> confirm<T>(
  BuildContext context, {
  String title = "Confirmation",
  String content = "",
  required ButtonWidget okButton,
  ButtonWidget? cancelButton,
  bool barrierDismisable = true,
}) async {
  var size = MediaQuery.of(context).size;
  var dialog = Dialog(
    backgroundColor: Colors.white,
    shape: RoundedRectangleBorder(
      borderRadius: BorderRadius.circular(10),
    ),
    child: Container(
      width: _isLargeDevice(size) ? 350 : size.width - 40,
      constraints: BoxConstraints(
        maxHeight: size.height - 80,
      ),
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(10),
        color: Colors.white,
      ),
      child: SingleChildScrollView(
        child: Container(
          padding: const EdgeInsets.symmetric(horizontal: 20),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              const SizedBox(height: 10),
              Text(
                title,
                style: Theme.of(context).textTheme.bodyText1!.copyWith(
                      fontWeight: FontWeight.bold,
                    ),
              ),
              const Divider(),
              Text(content),
              const Divider(),
              Container(
                alignment: Alignment.centerRight,
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.end,
                  children: [
                    okButton,
                    if (cancelButton != null) const SizedBox(width: 5),
                    if (cancelButton != null) cancelButton,
                  ],
                ),
              ),
              const SizedBox(height: 10),
            ],
          ),
        ),
      ),
    ),
  );
  return showDialog(
      context: context,
      barrierDismissible: barrierDismisable,
      builder: (context) {
        return dialog;
      });
}