FPSMS-frontend
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

10 місяці тому
10 місяці тому
10 місяці тому
11 місяці тому
7 місяці тому
10 місяці тому
7 місяці тому
10 місяці тому
11 місяці тому
5 місяці тому
11 місяці тому
10 місяці тому
11 місяці тому
10 місяці тому
3 дні тому
10 місяці тому
10 місяці тому
7 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
7 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
7 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
7 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
5 місяці тому
7 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
10 місяці тому
7 місяці тому
11 місяці тому
10 місяці тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. import Swal, { SweetAlertOptions } from "sweetalert2";
  2. import "./sweetalert2.css";
  3. import { TFunction } from "i18next";
  4. export type SweetAlertTitle = string | HTMLElement | JQuery | undefined;
  5. export type SweetAlertHtml = string | HTMLElement | JQuery | undefined;
  6. export type SweetAlertConfirmButtonText = string | undefined;
  7. type Transaction = TFunction<["translation", ...string[]], undefined>;
  8. export const msg = (title: SweetAlertTitle) => {
  9. Swal.mixin({
  10. toast: true,
  11. position: "bottom-end",
  12. showConfirmButton: false,
  13. timer: 3000,
  14. timerProgressBar: true,
  15. didOpen: (toast) => {
  16. toast.onmouseenter = Swal.stopTimer;
  17. toast.onmouseleave = Swal.resumeTimer;
  18. },
  19. customClass: {
  20. container: 'swal2-custom-zindex',
  21. },
  22. }).fire({
  23. icon: "success",
  24. title: title,
  25. });
  26. };
  27. export const msgError = (title: SweetAlertTitle) => {
  28. Swal.mixin({
  29. toast: true,
  30. position: "bottom-end",
  31. showConfirmButton: false,
  32. timer: 3000,
  33. timerProgressBar: true,
  34. didOpen: (toast) => {
  35. toast.onmouseenter = Swal.stopTimer;
  36. toast.onmouseleave = Swal.resumeTimer;
  37. },
  38. customClass: {
  39. container: 'swal2-custom-zindex',
  40. },
  41. }).fire({
  42. icon: "error",
  43. title: title,
  44. });
  45. };
  46. export const popup = (options: SweetAlertOptions) => {
  47. Swal.fire(options);
  48. };
  49. export const successDialog = async (
  50. title: SweetAlertTitle,
  51. t: Transaction,
  52. confirmAction?: () => void,
  53. ) => {
  54. const result = await Swal.fire({
  55. icon: "success",
  56. title: title,
  57. confirmButtonText: t("Confirm"),
  58. showConfirmButton: true,
  59. });
  60. if (result.isConfirmed && confirmAction) {
  61. confirmAction();
  62. }
  63. };
  64. export const successDialogWithContent = (
  65. title: SweetAlertTitle,
  66. html: SweetAlertHtml,
  67. t: Transaction,
  68. ) => {
  69. return Swal.fire({
  70. icon: "success",
  71. title: title,
  72. html: html,
  73. confirmButtonText: t("Confirm"),
  74. showConfirmButton: true,
  75. });
  76. };
  77. export const errorDialog = (title: SweetAlertTitle, t: Transaction) => {
  78. return Swal.fire({
  79. icon: "error",
  80. title: title,
  81. confirmButtonText: t("Confirm"),
  82. showConfirmButton: true,
  83. });
  84. };
  85. export const errorDialogWithContent = (
  86. title: SweetAlertTitle,
  87. html: SweetAlertHtml,
  88. t: Transaction,
  89. ) => {
  90. return Swal.fire({
  91. icon: "error",
  92. title: title,
  93. html: html,
  94. confirmButtonText: t("Confirm"),
  95. showConfirmButton: true,
  96. });
  97. };
  98. export const warningDialog = (title: SweetAlertTitle, t: Transaction) => {
  99. return Swal.fire({
  100. icon: "warning",
  101. title: title,
  102. confirmButtonText: t("Confirm"),
  103. showConfirmButton: true,
  104. });
  105. };
  106. export const submitDialog = async (
  107. confirmAction: () => void,
  108. t: Transaction,
  109. { ...props } = {
  110. title: t("Do you want to submit?") as SweetAlertTitle,
  111. confirmButtonText: t("Submit") as SweetAlertConfirmButtonText,
  112. },
  113. ) => {
  114. // console.log(props)
  115. // const { t } = useTranslation("common")
  116. const result = await Swal.fire({
  117. icon: "question",
  118. title: props?.title,
  119. cancelButtonText: t("Cancel"),
  120. confirmButtonText: props?.confirmButtonText,
  121. showCancelButton: true,
  122. showConfirmButton: true,
  123. customClass: {
  124. container: "swal-container-class", // Add a custom class to the Swal.fire container element
  125. popup: "swal-popup-class", // Add a custom class to the Swal.fire popup element
  126. },
  127. });
  128. if (result.isConfirmed) {
  129. confirmAction();
  130. }
  131. };
  132. export const submitDialogWithWarning = async (
  133. confirmAction: () => void,
  134. t: Transaction,
  135. { ...props } = {
  136. title: t("Do you want to submit?") as SweetAlertTitle,
  137. html: t("Warning!") as SweetAlertHtml,
  138. confirmButtonText: t("Submit") as SweetAlertConfirmButtonText,
  139. // cancelButtonText: t("Cancel") as SweetAlertConfirmButtonText,
  140. },
  141. ) => {
  142. // console.log(props)
  143. // const { t } = useTranslation("common")
  144. const result = await Swal.fire({
  145. icon: "warning",
  146. title: props?.title,
  147. html: props?.html,
  148. cancelButtonText: t("Cancel"),
  149. confirmButtonText: props?.confirmButtonText,
  150. showCancelButton: true,
  151. showConfirmButton: true,
  152. customClass: {
  153. container: "swal-container-class", // Add a custom class to the Swal.fire container element
  154. popup: "swal-popup-class", // Add a custom class to the Swal.fire popup element
  155. },
  156. });
  157. if (result.isConfirmed) {
  158. confirmAction();
  159. }
  160. };
  161. export const deleteDialog = async (
  162. confirmAction: () => void,
  163. t: Transaction,
  164. ) => {
  165. // const { t } = useTranslation("common")
  166. const result = await Swal.fire({
  167. icon: "question",
  168. title: t("Do you want to delete?"),
  169. cancelButtonText: t("Cancel"),
  170. confirmButtonText: t("Delete"),
  171. showCancelButton: true,
  172. showConfirmButton: true,
  173. customClass: {
  174. container: "swal-container-class", // Add a custom class to the Swal.fire container element
  175. popup: "swal-popup-class", // Add a custom class to the Swal.fire popup element
  176. },
  177. });
  178. if (result.isConfirmed) {
  179. confirmAction();
  180. }
  181. };