npm install react-hot-toast
// provider/toast-provider
"use client";
import { Toaster } from "react-hot-toast";
export const ToastProvider = () => {
return <Toaster />;
};
export default async function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<ClerkProvider afterSignOutUrl="/">
<html lang="en">
<body className={inter.className}>
<ToastProvider />
<ModalProvider />
{children}
</body>
</html>
</ClerkProvider>
);
}
사용하고 싶은 최상위 컴포넌트에 넣어준다.
toast.success('Successfully created!');
toast.error('An error occurred');
toast.loading('Loading...');
// 프로미스 처리
const promise = fetchData();
toast.promise(promise, {
loading: 'Loading...',
success: 'Got the data',
error: 'Error when fetching',
});
// 커스텀 스타일
toast('Hello', {
duration: 4000,
position: 'top-center',
style: {
background: '#333',
color: '#fff',
},
});