Skip to content

Commit 68d3b7b

Browse files
authored
Merge pull request #116 from BaeZzi813/jaeyeong2
♻️ Refact: 토스트 메시지 페이지 이동시 null 적용
2 parents db82526 + 2df1437 commit 68d3b7b

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

src/context/toastContext.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useRouter } from 'next/router';
12
import { createContext, ReactNode, useContext, useEffect, useState } from 'react';
23
import { createPortal } from 'react-dom';
34

@@ -15,6 +16,7 @@ export const useToast = () => {
1516

1617
const ToastProvider = ({ children }: { children: ReactNode }) => {
1718
const [message, setMessage] = useState<string | null>(null);
19+
const router = useRouter();
1820

1921
const showToast = (msg: string) => {
2022
setMessage(msg);
@@ -30,7 +32,18 @@ const ToastProvider = ({ children }: { children: ReactNode }) => {
3032
return () => {
3133
clearTimeout(timer);
3234
};
33-
});
35+
}, [message]);
36+
37+
useEffect(() => {
38+
const handleRouteChange = () => {
39+
setMessage(null);
40+
};
41+
42+
router.events.on('routeChangeStart', handleRouteChange);
43+
return () => {
44+
router.events.off('routeChangeStart', handleRouteChange);
45+
};
46+
}, [router]);
3447

3548
const toastRoot = typeof window !== 'undefined' ? document.getElementById('toast-root') : null;
3649

@@ -43,7 +56,7 @@ const ToastProvider = ({ children }: { children: ReactNode }) => {
4356
message ? (
4457
<div
4558
role='alert'
46-
className='fixed top-[30%] left-1/2 z-[1] -translate-x-1/2 rounded-[5px] bg-red-300 px-4 py-[10px] text-white'
59+
className='fixed left-1/2 top-[30%] z-[1] -translate-x-1/2 rounded-[5px] bg-red-300 px-4 py-[10px] text-white'
4760
>
4861
{message}
4962
</div>

0 commit comments

Comments
 (0)