|
- import Swal, { SweetAlertOptions } from "sweetalert2";
- import "./sweetalert2.css";
- import { TFunction } from "i18next";
-
- export type SweetAlertTitle = string | HTMLElement | JQuery | undefined;
- export type SweetAlertHtml = string | HTMLElement | JQuery | undefined;
- export type SweetAlertConfirmButtonText = string | undefined;
-
- type Transaction = TFunction<["translation", ...string[]], undefined>;
-
- export const msg = (title: SweetAlertTitle) => {
- Swal.mixin({
- toast: true,
- position: "bottom-end",
- showConfirmButton: false,
- timer: 3000,
- timerProgressBar: true,
- didOpen: (toast) => {
- toast.onmouseenter = Swal.stopTimer;
- toast.onmouseleave = Swal.resumeTimer;
- },
- customClass: {
- container: 'swal2-custom-zindex',
- },
- }).fire({
- icon: "success",
- title: title,
- });
- };
-
- export const msgError = (title: SweetAlertTitle) => {
- Swal.mixin({
- toast: true,
- position: "bottom-end",
- showConfirmButton: false,
- timer: 3000,
- timerProgressBar: true,
- didOpen: (toast) => {
- toast.onmouseenter = Swal.stopTimer;
- toast.onmouseleave = Swal.resumeTimer;
- },
- customClass: {
- container: 'swal2-custom-zindex',
- },
- }).fire({
- icon: "error",
- title: title,
- });
- };
-
- export const popup = (options: SweetAlertOptions) => {
- Swal.fire(options);
- };
-
- export const successDialog = async (
- title: SweetAlertTitle,
- t: Transaction,
- confirmAction?: () => void,
- ) => {
- const result = await Swal.fire({
- icon: "success",
- title: title,
- confirmButtonText: t("Confirm"),
- showConfirmButton: true,
- });
-
- if (result.isConfirmed && confirmAction) {
- confirmAction();
- }
- };
-
- export const successDialogWithContent = (
- title: SweetAlertTitle,
- html: SweetAlertHtml,
- t: Transaction,
- ) => {
- return Swal.fire({
- icon: "success",
- title: title,
- html: html,
- confirmButtonText: t("Confirm"),
- showConfirmButton: true,
- });
- };
-
- export const errorDialog = (title: SweetAlertTitle, t: Transaction) => {
- return Swal.fire({
- icon: "error",
- title: title,
- confirmButtonText: t("Confirm"),
- showConfirmButton: true,
- });
- };
-
- export const errorDialogWithContent = (
- title: SweetAlertTitle,
- html: SweetAlertHtml,
- t: Transaction,
- ) => {
- return Swal.fire({
- icon: "error",
- title: title,
- html: html,
- confirmButtonText: t("Confirm"),
- showConfirmButton: true,
- });
- };
-
- export const warningDialog = (title: SweetAlertTitle, t: Transaction) => {
- return Swal.fire({
- icon: "warning",
- title: title,
- confirmButtonText: t("Confirm"),
- showConfirmButton: true,
- });
- };
-
- export const submitDialog = async (
- confirmAction: () => void,
- t: Transaction,
- { ...props } = {
- title: t("Do you want to submit?") as SweetAlertTitle,
- confirmButtonText: t("Submit") as SweetAlertConfirmButtonText,
- },
- ) => {
- // console.log(props)
- // const { t } = useTranslation("common")
- const result = await Swal.fire({
- icon: "question",
- title: props?.title,
- cancelButtonText: t("Cancel"),
- confirmButtonText: props?.confirmButtonText,
- showCancelButton: true,
- showConfirmButton: true,
- customClass: {
- container: "swal-container-class", // Add a custom class to the Swal.fire container element
- popup: "swal-popup-class", // Add a custom class to the Swal.fire popup element
- },
- });
- if (result.isConfirmed) {
- confirmAction();
- }
- };
-
- export const submitDialogWithWarning = async (
- confirmAction: () => void,
- t: Transaction,
- { ...props } = {
- title: t("Do you want to submit?") as SweetAlertTitle,
- html: t("Warning!") as SweetAlertHtml,
- confirmButtonText: t("Submit") as SweetAlertConfirmButtonText,
- // cancelButtonText: t("Cancel") as SweetAlertConfirmButtonText,
- },
- ) => {
- // console.log(props)
- // const { t } = useTranslation("common")
- const result = await Swal.fire({
- icon: "warning",
- title: props?.title,
- html: props?.html,
- cancelButtonText: t("Cancel"),
- confirmButtonText: props?.confirmButtonText,
- showCancelButton: true,
- showConfirmButton: true,
- customClass: {
- container: "swal-container-class", // Add a custom class to the Swal.fire container element
- popup: "swal-popup-class", // Add a custom class to the Swal.fire popup element
- },
- });
- if (result.isConfirmed) {
- confirmAction();
- }
- };
-
- export const deleteDialog = async (
- confirmAction: () => void,
- t: Transaction,
- ) => {
- // const { t } = useTranslation("common")
- const result = await Swal.fire({
- icon: "question",
- title: t("Do you want to delete?"),
- cancelButtonText: t("Cancel"),
- confirmButtonText: t("Delete"),
- showCancelButton: true,
- showConfirmButton: true,
- customClass: {
- container: "swal-container-class", // Add a custom class to the Swal.fire container element
- popup: "swal-popup-class", // Add a custom class to the Swal.fire popup element
- },
- });
- if (result.isConfirmed) {
- confirmAction();
- }
- };
|