kYesNoDialog function

dynamic kYesNoDialog({
  1. required dynamic context,
  2. required dynamic centerText,
  3. required Function yes,
  4. required Function no,
  5. dynamic showNoBool = false,
  6. dynamic btnTextYes,
  7. dynamic btnTextYesColor,
  8. dynamic btnTextNo,
  9. dynamic btnTextNoColor,
  10. dynamic btnColorYes,
  11. dynamic btnColorNo,
  12. dynamic centerTextColor,
  13. dynamic isDismissible = true,
  14. Function? onBackPress,
  15. bool simpleBackPress = true,
})

constant popup

Implementation

kYesNoDialog(
    {required context,
    required centerText,
    required Function yes,
    required Function no,
    showNoBool = false,
    btnTextYes,
    btnTextYesColor,
    btnTextNo,
    btnTextNoColor,
    btnColorYes,
    btnColorNo,
    centerTextColor,
    isDismissible = true,
    Function? onBackPress,
    bool simpleBackPress = true}) {
  showGeneralDialog(
      barrierLabel: "",
      barrierDismissible: isDismissible,
      barrierColor: Colors.grey.withOpacity(0.5),
      transitionDuration: Duration(milliseconds: 300),
      context: context,
      pageBuilder: (BuildContext buildContext, Animation<double> animation,
          Animation<double> secondaryAnimation) {
        return WillPopScope(
            child: Align(
                alignment: Alignment.center,
                child: Container(
                    padding: EdgeInsets.all(kBodyPadding),
                    height: 280,
                    child: Column(
                        mainAxisSize: MainAxisSize.min,
                        crossAxisAlignment: CrossAxisAlignment.center,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Center(
                              child: CustomText(
                                  text: centerText,
                                  color: centerTextColor ?? greyColor1,
                                  decoration: TextDecoration.none,
                                  fontSize: size18)),
                          SizedBox(height: 40.0),
                          Row(
                              mainAxisSize: MainAxisSize.max,
                              mainAxisAlignment: MainAxisAlignment.spaceAround,
                              children: [
                                if (showNoBool)
                                  CustomButton(
                                      textDecoration: TextDecoration.none,
                                      width: 100.0,
                                      textColor: btnTextNoColor ?? whiteColor,
                                      height: 44.0,
                                      onTap: () {
                                        kHideKeyboard(context);
                                        return no();
                                      },
                                      text: btnTextNo ?? Strings.no,
                                      buttonColor: btnColorNo ?? orangeColor),
                                if (showNoBool) SizedBox(width: 30.0),
                                CustomButton(
                                    textDecoration: TextDecoration.none,
                                    width: 100.0,
                                    textColor: btnTextYesColor ?? whiteColor,
                                    height: 44.0,
                                    onTap: () {
                                      kHideKeyboard(context);
                                      return yes();
                                    },
                                    text: btnTextYes ?? Strings.yes,
                                    buttonColor: btnColorYes ?? yellowColor)
                              ]),
                        ]),
                    margin: EdgeInsets.only(
                        bottom: 0, left: kBodyPadding, right: kBodyPadding),
                    decoration: BoxDecoration(
                        color: whiteColor,
                        borderRadius: BorderRadius.circular(15)))),
            onWillPop: simpleBackPress
                ? () => Future.value(true)
                : () {
                    kHideKeyboard(context);
                    goBack(context: context);
                    onBackPress!();
                    return Future.value(true);
                  });
      },
      transitionBuilder: (_, anim, __, child) {
        return SlideTransition(
            position:
                Tween(begin: Offset(0, 1), end: Offset(0, 0)).animate(anim),
            child: child);
      });
}