Hooks
useBeforeUnload
Warn people before they close the tab or reload the page with unsaved changes, using the browser's beforeunload prompt.
Preview
Usage
import { useBeforeUnload } from '@vitnode/core/hooks/use-before-unload'const [isDirty, setIsDirty] = React.useState(false)
useBeforeUnload(isDirty)While enabled is true, closing the tab, reloading or typing a new address
makes the browser ask "Leave site?". Set it back to false once the changes are
saved.
Check at the last moment
Pass a function and the hook calls it only when someone tries to leave. Handy when the dirty state lives in a ref that doesn't re-render:
const hasUnsavedChanges = React.useRef(false)
useBeforeUnload(() => hasUnsavedChanges.current)Good to know
- The browser writes the message. Modern browsers ignore custom text.
messageonly matters for old ones. - In-app navigation isn't covered. Clicking a router
Linkdoesn't unload the page, so no prompt. - Use it sparingly. A prompt on every page teaches people to click "Leave" without reading.
Options
Prop
Type
The hook returns nothing.