import { useCallback, useEffect, useState } from 'react'; export const useUnloadPage = () => { const [shouldPreventUnload, setShouldPreventUnload] = useState(false); const beforeUnloadHandler = useCallback((event) => { event.preventDefault(); event.returnValue = true; }, []); useEffect(() => { if (shouldPreventUnload) { window.addEventListener('beforeunload', beforeUnloadHandler); } else { window.removeEventListener('beforeunload', beforeUnloadHandler); } return () => { window.removeEventListener('beforeunload', beforeUnloadHandler); }; }, [beforeUnloadHandler, shouldPreventUnload]); return { shouldPreventUnload, setShouldPreventUnload, }; };