import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:quickalert/models/quickalert_type.dart'; import 'package:quickalert/widgets/quickalert_dialog.dart'; import '../core/constants/translation_keys.dart'; import '../core/extensions/build_context_ext.dart'; import '../res/app_colors.dart'; class PopDialog { static late BuildContext dialogContext; static successDialog( BuildContext context, { String title = "", String description = "An Success occurred", String positiveButtonText = "", Function()? onPositiveTap, }) { QuickAlert.show( context: context, title: title.isEmpty ? TranslationKeys.makeTranslation(TranslationKeys.textSuccess) : title, text: description, confirmBtnColor: AppColors.colorButton, confirmBtnTextStyle: Theme.of(context).textTheme.titleMedium?.copyWith(color: AppColors.colorSecondary), confirmBtnText: positiveButtonText.isEmpty ? TranslationKeys.makeTranslation(TranslationKeys.textOK) : positiveButtonText, onConfirmBtnTap: () { Navigator.of(context, rootNavigator: true).pop(); if (onPositiveTap != null) { onPositiveTap(); } }, disableBackBtn: true, type: QuickAlertType.success, barrierDismissible: false, showConfirmBtn: true, ); } static warningDialog( BuildContext context, { String title = "", String description = "", String positiveButtonText = "", String negativeButtonText = "", Function()? onPositiveTap, Function()? onNegativeTap, }) { QuickAlert.show( showCancelBtn: true, context: context, title: title.isEmpty ? TranslationKeys.makeTranslation(TranslationKeys.textWarning) : title, confirmBtnColor: AppColors.colorButton, text: description, confirmBtnTextStyle: Theme.of(context).textTheme.titleMedium?.copyWith(color: AppColors.colorSecondary), confirmBtnText: positiveButtonText.isEmpty ? TranslationKeys.makeTranslation(TranslationKeys.textOK) : positiveButtonText, cancelBtnText: negativeButtonText.isEmpty ? TranslationKeys.makeTranslation(TranslationKeys.textCancel) : negativeButtonText, onCancelBtnTap: () { Navigator.of(context, rootNavigator: true).pop(); if (onNegativeTap != null) { onNegativeTap(); } }, onConfirmBtnTap: () { Navigator.of(context, rootNavigator: true).pop(); if (onPositiveTap != null) { onPositiveTap(); } }, disableBackBtn: true, type: QuickAlertType.warning, barrierDismissible: false, showConfirmBtn: true, ); } static Card buildButton({ required onTap, required title, required text, required leadingImage, }) { return Card( shape: const StadiumBorder(), margin: const EdgeInsets.symmetric( horizontal: 20, ), clipBehavior: Clip.antiAlias, elevation: 1, child: ListTile( onTap: onTap, leading: CircleAvatar( backgroundImage: AssetImage( leadingImage, ), ), title: Text( title ?? "", ), subtitle: Text(text ?? "", style: Get.context.textTheme.bodySmall), trailing: const Icon( Icons.keyboard_arrow_right_rounded, ), ), ); } }