on master help sign in
bridge/src/lib/useBlockWindowClose.js
33 lines 767 B history raw
1import { useEffect } from 'react';
3function onBeforeUnload(e) {
4 e.preventDefault();
6 e.returnValue = '';
7}
9export default function useBlockWindowClose() {
10 return useEffect(() => {
11 window.addEventListener('beforeunload', onBeforeUnload);
13 return function cleanup() {
14 window.removeEventListener('beforeunload', onBeforeUnload);
15 };
16 });
19export function useConditionalBlockWindowClose(condition) {
20 return useEffect(() => {
21 if (condition) {
22 window.addEventListener('beforeunload', onBeforeUnload);
23 } else {
24 window.removeEventListener('beforeunload', onBeforeUnload);
25 }
27 return function cleanup() {
28 if (condition) {
29 window.removeEventListener('beforeunload', onBeforeUnload);
30 }
31 };
32 });