UNPKG

metasnippets

Version:

A set of utilities for MetaEditor

22 lines (17 loc) 911 B
"use strict";var _react=_interopRequireDefault(require("react"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}/* Usage: // hooks import {useUnload} from 'hooks/' const MyComponent = () => { useUnload(e => { e.preventDefault(); e.returnValue = ''; }); return ( <div> Some content </div> ); }; */const useUnload=a=>{const b=_react.default.useRef(a);// init with fn, so that type checkers won't assume that current might be undefined _react.default.useEffect(()=>{b.current=a},[a]);const c=(...a)=>b.current?.(...a);_react.default.useEffect(()=>()=>{d.deactivate()},[]);const d=new class{constructor(){}activate(){window.addEventListener("beforeunload",c)}deactivate(){window.removeEventListener("beforeunload",c)}};return d};var _default=useUnload;exports.default=_default;