# extendify/0.10.0/src/Onboarding/hooks/useWarnOnLeave.js

Extendify, version 0.10.0. 18 lines.

- Page: https://pluginprobe.com/plugins/extendify/0.10.0/code/src/Onboarding/hooks/useWarnOnLeave.js
- Raw: https://pluginprobe.com/plugins/extendify/0.10.0/raw/src/Onboarding/hooks/useWarnOnLeave.js
- Modified: 2022-08-25T21:16:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/extendify/0.10.0/code/src/Onboarding/hooks/useWarnOnLeave.js#L10-L20`.

```javascript
import { useEffect } from '@wordpress/element'

export const useWarnOnLeave = (enabled = true) => {
    // Display warning alert if user tries to exit
    useEffect(() => {
        if (!enabled) return
        const handleUnload = (event) => {
            event.preventDefault()
            return (event.returnValue = '')
        }
        const opts = { capture: true }
        window.addEventListener('beforeunload', handleUnload, opts)
        return () => {
            window.removeEventListener('beforeunload', handleUnload, opts)
        }
    }, [enabled])
}

```
