diff --git a/src/context/toastContext.tsx b/src/context/toastContext.tsx index 02dd415..3e99567 100644 --- a/src/context/toastContext.tsx +++ b/src/context/toastContext.tsx @@ -1,3 +1,4 @@ +import { useRouter } from 'next/router'; import { createContext, ReactNode, useContext, useEffect, useState } from 'react'; import { createPortal } from 'react-dom'; @@ -15,6 +16,7 @@ export const useToast = () => { const ToastProvider = ({ children }: { children: ReactNode }) => { const [message, setMessage] = useState(null); + const router = useRouter(); const showToast = (msg: string) => { setMessage(msg); @@ -30,7 +32,18 @@ const ToastProvider = ({ children }: { children: ReactNode }) => { return () => { clearTimeout(timer); }; - }); + }, [message]); + + useEffect(() => { + const handleRouteChange = () => { + setMessage(null); + }; + + router.events.on('routeChangeStart', handleRouteChange); + return () => { + router.events.off('routeChangeStart', handleRouteChange); + }; + }, [router]); const toastRoot = typeof window !== 'undefined' ? document.getElementById('toast-root') : null; @@ -43,7 +56,7 @@ const ToastProvider = ({ children }: { children: ReactNode }) => { message ? (
{message}