import { toast } from "sonner"
import { type LocaleType } from "@shared/i18n/t"
import Notification from "@frontend/components/toast/notification"
import { ReactNode } from "react"
import { Ban, Check, CircleAlert, Info } from "lucide-react"
import {
t_toastError,
t_toastInfo,
t_toastSuccess,
t_toastWarning,
} from "@shared/i18n/messages/t-toast"
import FrontendConfig from "@frontend/config/frontend-config"
export function useToast({ locale }: { locale: LocaleType }) {
const defaultDuration = FrontendConfig.defaultToastDuration
function error(message: string, duration?: number) {
duration = duration ?? defaultDuration
toast.custom(
(id) => {
return (
}
className="bg-toast-error"
label={t_toastError(locale)}
/>
)
},
{ duration },
)
}
function info(message: string | ReactNode, duration?: number) {
duration = duration ?? defaultDuration
toast.custom(
(id) => {
return (
}
className="bg-toast-info"
label={t_toastInfo(locale)}
/>
)
},
{ duration },
)
}
function success(message: string, duration?: number) {
duration = duration ?? defaultDuration
toast.custom(
(id) => {
return (
}
className="bg-toast-success"
label={t_toastSuccess(locale)}
/>
)
},
{ duration },
)
}
function warning(message: string, duration?: number) {
duration = duration ?? defaultDuration
toast.custom(
(id) => {
return (
}
className="bg-toast-warning"
label={t_toastWarning(locale)}
/>
)
},
{ duration },
)
}
return {
error,
info,
success,
warning,
}
}