mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
'use client';
|
|
|
|
import { useTheme } from '@/components/providers/theme-provider';
|
|
import { Toaster as Sonner } from 'sonner';
|
|
|
|
type ToasterProps = React.ComponentProps<typeof Sonner>;
|
|
|
|
export function Toaster({ ...props }: ToasterProps) {
|
|
const { resolvedTheme } = useTheme();
|
|
|
|
return (
|
|
<Sonner
|
|
position="bottom-right"
|
|
theme={resolvedTheme as ToasterProps['theme']}
|
|
className="toaster group"
|
|
toastOptions={{
|
|
classNames: {
|
|
toast:
|
|
'group toast group-[.toaster]:bg-[var(--surface-elevated)] group-[.toaster]:text-[var(--foreground-primary)] group-[.toaster]:border-[var(--border-default)] group-[.toaster]:shadow-lg group-[.toaster]:rounded-2xl group-[.toaster]:font-sans',
|
|
description: 'group-[.toast]:text-[var(--foreground-secondary)]',
|
|
actionButton:
|
|
'group-[.toast]:bg-[var(--primary)] group-[.toast]:text-[var(--primary-foreground)]',
|
|
cancelButton:
|
|
'group-[.toast]:bg-[var(--muted)] group-[.toast]:text-[var(--muted-foreground)]',
|
|
},
|
|
}}
|
|
{...props}
|
|
/>
|
|
);
|
|
}
|