all_dialog.dart 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:nomo/config/theme/theme_extensions/theme_extension.dart';
  4. import 'package:nomo/config/translations/strings_enum.dart';
  5. import '../constants/iconfont/iconfont.dart';
  6. import 'custom_dialog.dart';
  7. /// 弹窗使用示例
  8. class AllDialog {
  9. /// 显示Premium激活成功弹窗
  10. static void showPremiumActivated() {
  11. CustomDialog.showSuccess(
  12. title: Strings.premiumActivated.tr,
  13. message: Strings.premiumActivatedMessage.tr,
  14. buttonText: Strings.gotIt.tr,
  15. icon: Icons.workspace_premium,
  16. iconColor: const Color(0xFFFF9500),
  17. onPressed: () {
  18. // 处理激活成功后的逻辑
  19. print('Premium activated successfully');
  20. Navigator.of(Get.context!).pop();
  21. },
  22. );
  23. }
  24. /// 显示邮件发送成功弹窗
  25. static void showEmailSent() {
  26. CustomDialog.showInfo(
  27. title: Strings.emailSent.tr,
  28. message: Strings.emailSentMessage.tr,
  29. buttonText: Strings.ok.tr,
  30. icon: Icons.mark_email_read,
  31. iconColor: Colors.white,
  32. onPressed: () {
  33. // 处理邮件发送成功后的逻辑
  34. print('Email sent successfully');
  35. Navigator.of(Get.context!).pop();
  36. },
  37. );
  38. }
  39. /// 显示网络连接错误弹窗
  40. static void showNetworkError() {
  41. CustomDialog.showError(
  42. title: Strings.noInternetConnection.tr,
  43. message: Strings.noInternetMessage.tr,
  44. buttonText: Strings.retry.tr,
  45. cancelText: Strings.cancel.tr,
  46. icon: Icons.wifi_off,
  47. iconColor: const Color.fromARGB(255, 231, 152, 5),
  48. confirmButtonColor: Get.reactiveTheme.primaryColor,
  49. errorCode: '',
  50. onPressed: () {
  51. // 处理重试逻辑
  52. print('Retry network connection');
  53. Navigator.of(Get.context!).pop();
  54. },
  55. onCancel: () {
  56. // 处理取消逻辑
  57. print('Cancel network retry');
  58. Navigator.of(Get.context!).pop();
  59. },
  60. );
  61. }
  62. /// 显示退出登录确认弹窗
  63. static void showLogoutConfirm() {
  64. CustomDialog.showError(
  65. title: Strings.logOut.tr,
  66. message: Strings.logOutConfirmMessage.tr,
  67. buttonText: Strings.logOut.tr,
  68. cancelText: Strings.cancel.tr,
  69. icon: Icons.info_outline,
  70. iconColor: const Color(0xFFFF3B30),
  71. confirmButtonColor: const Color(0xFFFF3B30),
  72. onPressed: () {
  73. // 处理退出登录逻辑
  74. print('User confirmed logout');
  75. // 这里可以调用退出登录的API
  76. Navigator.of(Get.context!).pop();
  77. },
  78. onCancel: () {
  79. // 处理取消退出逻辑
  80. print('User cancelled logout');
  81. Navigator.of(Get.context!).pop();
  82. },
  83. );
  84. }
  85. /// 显示反馈弹窗
  86. static void showFeedback() {
  87. CustomDialog.showInfo(
  88. title: Strings.thankYouFeedback.tr,
  89. message: Strings.feedbackMessage.tr,
  90. buttonText: Strings.done.tr,
  91. icon: Icons.favorite_border,
  92. iconColor: Get.theme.textTheme.bodyLarge!.color,
  93. onPressed: () {
  94. // 处理邮件发送成功后的逻辑
  95. print('Feedback submitted successfully');
  96. Navigator.of(Get.context!).pop();
  97. },
  98. );
  99. }
  100. /// 显示UID信息弹窗
  101. static void showUidInfo() {
  102. CustomDialog.showInfo(
  103. icon: IconFont.icon14,
  104. iconColor: Get.theme.textTheme.bodyLarge!.color,
  105. title: Strings.whatIsUid.tr,
  106. message: Strings.uidMessage.tr,
  107. buttonText: Strings.ok.tr,
  108. onPressed: () {
  109. // 处理邮件发送成功后的逻辑
  110. print('UID info dialog closed');
  111. Navigator.of(Get.context!).pop();
  112. },
  113. );
  114. }
  115. /// 显示自定义成功弹窗
  116. static void showCustomSuccess({
  117. required String title,
  118. required String message,
  119. String? buttonText,
  120. VoidCallback? onPressed,
  121. }) {
  122. CustomDialog.showSuccess(
  123. title: title,
  124. message: message,
  125. buttonText: buttonText ?? Strings.gotIt.tr,
  126. onPressed: onPressed,
  127. );
  128. }
  129. /// 显示自定义信息弹窗
  130. static void showCustomInfo({
  131. required String title,
  132. required String message,
  133. String? buttonText,
  134. VoidCallback? onPressed,
  135. }) {
  136. CustomDialog.showInfo(
  137. title: title,
  138. message: message,
  139. buttonText: buttonText ?? Strings.ok.tr,
  140. onPressed: onPressed,
  141. );
  142. }
  143. /// 显示自定义错误弹窗
  144. static void showCustomError({
  145. required String title,
  146. required String message,
  147. String? buttonText,
  148. String? cancelText,
  149. VoidCallback? onPressed,
  150. VoidCallback? onCancel,
  151. String? errorCode,
  152. }) {
  153. CustomDialog.showError(
  154. title: title,
  155. message: message,
  156. buttonText: buttonText ?? Strings.retry.tr,
  157. cancelText: cancelText,
  158. onPressed: onPressed,
  159. onCancel: onCancel,
  160. errorCode: errorCode,
  161. );
  162. }
  163. /// 显示自定义确认弹窗
  164. static void showCustomConfirm({
  165. required String title,
  166. required String message,
  167. String? confirmText,
  168. String? cancelText,
  169. required VoidCallback onConfirm,
  170. VoidCallback? onCancel,
  171. Color? confirmButtonColor,
  172. }) {
  173. CustomDialog.showConfirm(
  174. title: title,
  175. message: message,
  176. confirmText: confirmText ?? Strings.confirm.tr,
  177. cancelText: cancelText ?? Strings.cancel.tr,
  178. onConfirm: onConfirm,
  179. onCancel: onCancel,
  180. confirmButtonColor: confirmButtonColor,
  181. );
  182. }
  183. }