'use client' import { useHeaderStore } from '@/store/header' import { usePopupController } from '@/store/popupController' import { useSideNavState } from '@/store/sideNavState' import { usePathname } from 'next/navigation' import { useEffect } from 'react' declare global { interface Window { alert2: (msg: string, alert2BtnYes?: () => void, alert2BtnNo?: () => void) => void } } export default function EdgeProvider({ children }: React.PropsWithChildren) { const pathname = usePathname() const { setBackBtn } = useHeaderStore() const { reset } = useSideNavState() const { setAlertMsg, setAlertBtn, setAlert, setAlert2, setAlert2BtnYes, setAlert2BtnNo } = usePopupController() const alertFunc = (msg: string, alertBtn: Function) => { console.log('πŸš€ ~ alertFunc ~ msg:', msg) setAlertMsg(msg) setAlertBtn(alertBtn) setAlert(true) } /** * alert2 ν•¨μˆ˜ * @param msg alert λ©”μ‹œμ§€ * @param alertBtn2Yes alert 확인 λ²„νŠΌ ν΄λ¦­μ‹œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜ * @param alertBtn2No alert μ·¨μ†Œ λ²„νŠΌ ν΄λ¦­μ‹œ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜ */ const alertFunc2 = (msg: string, alertBtn2Yes: Function, alertBtn2No: Function) => { console.log('πŸš€ ~ alertFunc ~ msg:', msg) setAlertMsg(msg) setAlert2BtnYes(alertBtn2Yes) setAlert2BtnNo(alertBtn2No) setAlert2(true) } useEffect(() => { window.alert = function (msg, alertBtn = () => setAlert(false)) { alertFunc(msg, alertBtn) } window.alert2 = function (msg, alert2BtnYes = () => setAlert2(false), alert2BtnNo = () => setAlert2(false)) { alertFunc2(msg, alert2BtnYes, alert2BtnNo) } }, []) /** * 헀더 λ’€λ‘œκ°€κΈ° λ²„νŠΌ 컨트둀 * μ‚¬μ΄λ“œλ°” μ΄ˆκΈ°ν™” 컨트둀 */ useEffect(() => { if (pathname === '/') { setBackBtn(false) } else { setBackBtn(true) } //μ‚¬μ΄λ“œλ°” μ΄ˆκΈ°ν™” reset() }, [pathname]) return <>{children} }