|
- 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;
- },
- }).fire({
- icon: "success",
- title: title,
- });
- };
-
- export const popup = (options: SweetAlertOptions) => {
- Swal.fire(options);
- };
-
- export const successDialog = (title: SweetAlertTitle, t: Transaction) => {
- return Swal.fire({
- icon: "success",
- title: title,
- confirmButtonText: t("Confirm"),
- showConfirmButton: true,
- });
- };
-
- 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,
- }
- ) => {
- // 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();
- }
- };
|