messageWithNavigationOptionsDialog static method

dynamic messageWithNavigationOptionsDialog(
  1. BuildContext context,
  2. String title,
  3. String cancel,
  4. String proceed,
  5. String content, {
  6. bool isDismissible = true,
  7. bool isReason = false,
  8. double? iconHeight,
  9. double? iconWidth,
  10. required dynamic onProceed(),
  11. required dynamic onCancel(),
  12. bool isError = true,
})

Implementation

static messageWithNavigationOptionsDialog(BuildContext context, String title,
    String cancel, String proceed, String content,
    {bool isDismissible = true,
    bool isReason = false,
    double? iconHeight,
    double? iconWidth,
    required Function() onProceed,
    required Function() onCancel,
    bool isError = true}) {
  final Localization localization = Localization.getInstance();
  showDialog(
    barrierDismissible: isDismissible,
    context: context,
    builder: (_) {
      return PopScope(
          canPop: isDismissible,
          child: Dialog(
            insetPadding: EdgeInsets.symmetric(
                horizontal: SizeConstant.getHeightWithScreen(10),
                vertical: SizeConstant.getHeightWithScreen(24)),
            child: Container(
              decoration: BoxDecoration(
                color: ColorConstant.white,
                borderRadius: BorderRadius.circular(
                  SizeConstant.getHeightWithScreen(12),
                ),
              ),
              padding: EdgeInsets.symmetric(
                  vertical: SizeConstant.getHeightWithScreen(30),
                  horizontal: SizeConstant.getHeightWithScreen(24)),
              child: Column(
                mainAxisSize: MainAxisSize.min,
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  SvgPicture.asset(
                    isError
                        ? "assets/images/error_icon.svg"
                        : "assets/images/success_icon.svg",
                    package: Constants.packageName,
                    height:
                        iconHeight ?? SizeConstant.getHeightWithScreen(50),
                    width: iconWidth ?? SizeConstant.getHeightWithScreen(50),
                  ),
                  SizedBox(
                    height: SizeConstant.getHeightWithScreen(10),
                  ),
                  Text(
                    localization.translate(title),
                    style: TextStyle(
                        color: ColorConstant.darkGrey2,
                        fontSize: SizeConstant.largeFont,
                        fontWeight: FontWeight.w700,
                        fontFamily: "OpenSans"),
                  ),
                  content.isNotEmpty
                      ? Padding(
                          padding: EdgeInsets.only(
                              top: SizeConstant.getHeightWithScreen(6)),
                          child: Text(
                            localization.translate(content),
                            textAlign: TextAlign.center,
                            style: TextStyle(
                                color: ColorConstant.darkGrey,
                                fontSize: SizeConstant.mediumFont,
                                fontWeight: FontWeight.w700,
                                fontFamily: "OpenSans"),
                          ),
                        )
                      : const SizedBox(),
                  SizedBox(
                    height: SizeConstant.getHeightWithScreen(22),
                  ),
                  Padding(
                    padding: EdgeInsets.symmetric(
                        horizontal: SizeConstant.getHeightWithScreen(0)),
                    child: Row(
                      children: [
                        InkWell(
                          onTap: () {
                            onCancel();
                          },
                          child: Container(
                              width: (MediaQuery.of(context).size.width / 2) -
                                  SizeConstant.getHeightWithScreen(40),
                              height: SizeConstant.getHeightWithScreen(40),
                              decoration: BoxDecoration(
                                border: Border.all(
                                  width: 1,
                                  color: ColorConstant.primaryButtonColor,
                                ),
                                borderRadius: BorderRadius.circular(
                                    SizeConstant.getHeightWithScreen(4)),
                              ),
                              child: Center(
                                child: Text(
                                  localization.translate(cancel),
                                  style: TextStyle(
                                    fontSize: SizeConstant.mediumFont,
                                    fontWeight: FontWeight.w500,
                                    color: ColorConstant.primaryTextColor,
                                  ),
                                ),
                              )),
                        ),
                        SizedBox(
                          width: SizeConstant.getHeightWithScreen(12),
                        ),
                        VentasPrimaryButton(
                          onTap: () {
                            onProceed();
                          },
                          label: localization.translate(proceed),
                          textColor: ColorConstant.white,
                          borderRadius: SizeConstant.getHeightWithScreen(4),
                          textSize: SizeConstant.mediumFont,
                          bgColor: ColorConstant.primaryButtonColor,
                          weight: FontWeight.w500,
                          btnHeight: SizeConstant.getHeightWithScreen(40),
                          btnWidth: (MediaQuery.of(context).size.width / 2) -
                              SizeConstant.getHeightWithScreen(40),
                        ),
                      ],
                    ),
                  )
                ],
              ),
            ),
          ));
    },
  );
}