"use client"
import { useTheme } from "next-themes"
import { Toaster as Sonner, type ToasterProps } from "sonner"
import { InfoIcon, TriangleAlertIcon, Loader2Icon } from "lucide-react"
const getGifUrl = (type: "success" | "error") => {
const d = window.wawpDashboardData;
if (type === "success") return d?.icons?.successGif || (d?.global?.pluginUrl + "assets/img/success.gif");
return d?.icons?.errorGif || (d?.global?.pluginUrl + "assets/img/error.gif");
};
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = "system" } = useTheme()
return (
),
info: (
),
warning: (
),
error: (
),
loading: (
),
}}
style={
{
"--normal-bg": "#ffffff",
"--normal-text": "#1e293b",
"--normal-border": "#e2e8f0",
"--border-radius": "12px",
fontFamily: "inherit",
} as React.CSSProperties
}
toastOptions={{
classNames: {
toast:
"wawp-toast !bg-white !border !border-slate-200 !shadow-[0_8px_30px_rgba(0,0,0,0.08)] !rounded-xl !py-3.5 !px-4 !items-start !gap-3 font-sans",
title: "!text-[13px] !font-bold !leading-tight",
description: "!text-[12px] !font-medium !leading-snug !mt-0.5",
icon: "!mt-0 !mr-0",
closeButton:
"!bg-slate-100 !border-slate-200 !text-slate-500 hover:!bg-slate-200 hover:!text-slate-700 !rounded-full !transition-all",
success:
"!border-emerald-200/80 [&_[data-title]]:!text-emerald-700 [&_[data-description]]:!text-emerald-600/80",
error:
"!border-red-200/80 [&_[data-title]]:!text-red-700 [&_[data-description]]:!text-red-600/80",
warning:
"!border-amber-200/80 [&_[data-title]]:!text-amber-700 [&_[data-description]]:!text-amber-600/80",
info:
"!border-blue-200/80 [&_[data-title]]:!text-blue-700 [&_[data-description]]:!text-blue-600/80",
},
}}
{...props}
/>
)
}
export { Toaster }