customDialog function

dynamic customDialog(
  1. BuildContext context, {
  2. required Widget content,
  3. Widget? title,
  4. Widget? titleIcon,
  5. String? positiveButtonText,
  6. Function? positiveButtonAction,
  7. String? negativeButtonText,
  8. Function? negativeButtonAction,
  9. String? neutralButtonText,
  10. Function? neutralButtonAction,
  11. bool hideNeutralButton = false,
  12. bool hideTitleDivider = false,
  13. bool closeOnBackPress = false,
})

customDialog function with title and content widgets

positiveButtonText for positive button text negativeButtonText for negative button text neutralButtonText for negative button text hideNeutralButton to hide the Neutral Button default is false closeOnBackPress to close dialog on back button default is false confirmationDialog to make the confirmation dialog default is false confirmationMessage confirmation message default is 'Please check this box for Confirmation!'

Implementation

customDialog(
  BuildContext context, {
  required Widget content,
  Widget? title,
  Widget? titleIcon,
  String? positiveButtonText,
  Function? positiveButtonAction,
  String? negativeButtonText,
  Function? negativeButtonAction,
  String? neutralButtonText,
  Function? neutralButtonAction,
  bool hideNeutralButton = false,
  bool hideTitleDivider = false,
  bool closeOnBackPress = false,
}) {
  return showGeneralDialog(
    context: context,
    barrierDismissible: closeOnBackPress,
    barrierLabel: "",
    barrierColor: getBarrierColor(),
    transitionDuration: getDialogPopUpAnimationDuration(),
    transitionBuilder: (c2, a1, a2, widget) {
      return getDialogAnimation(a1, a2, widget);
    },
    pageBuilder: (c1, a1, a2) => WillPopScope(
      child: CustomDialog(
        titleWidget: title,
        contentWidget: content,
        icon: titleIcon,
        negativeButtonText: negativeButtonText,
        negativeButtonAction: negativeButtonAction,
        positiveButtonText: positiveButtonText,
        positiveButtonAction: positiveButtonAction,
        neutralButtonText: neutralButtonText,
        neutralButtonAction: neutralButtonAction,
        hideNeutralButton: hideNeutralButton,
        hideTitleDivider: hideTitleDivider,
      ),
      onWillPop: () async => closeOnBackPress,
    ),
  );
}