customDialog method

void customDialog({
  1. required BuildContext context,
  2. required String heading,
  3. required String subHeading,
  4. required VoidCallback onOkTap,
  5. VoidCallback? onCancelTap,
  6. String? okButtonText,
  7. String? cancelButtonText,
  8. bool barrierDismissible = true,
})

Implementation

void customDialog({
  required BuildContext context,
  required String heading,
  required String subHeading,
  required VoidCallback onOkTap,
  VoidCallback? onCancelTap,
  String? okButtonText,
  String? cancelButtonText,
  bool barrierDismissible = true,
}) {
  final size = MediaQuery.of(context).size;
  showDialog(
    context: context,
    barrierDismissible: barrierDismissible,
    builder: (_) => WillPopScope(
      onWillPop: () async {
        return barrierDismissible;
      },
      child: CupertinoAlertDialog(
        title: Text(heading),
        content: SizedBox(width: size.width * 0.9, child: Text(subHeading)),
        actions: [
          if (onCancelTap != null)
            TextButton(
              onPressed: onCancelTap,
              child: Text(cancelButtonText ?? Strings.cancel),
            ),
          TextButton(
            onPressed: onOkTap,
            child: Text(okButtonText ?? Strings.yes),
          ),
        ],
      ),
    ),
  );
}