Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / components / hooks / useBeforeUnload.ts
blob52aef341fa69a15915a3529b13874e68d6435010
1 import { useEffect } from 'react';
3 import busy from '@proton/shared/lib/busy';
5 const useBeforeUnload = (message?: string | boolean) => {
6     useEffect(() => {
7         if (!message) {
8             return;
9         }
11         const handleUnload = (event: BeforeUnloadEvent) => {
12             const computedMessage = message === true ? '' : message;
13             if (event) {
14                 event.preventDefault();
15                 event.returnValue = computedMessage;
16             }
17             return computedMessage;
18         };
19         const unregister = busy.register();
20         window.addEventListener('beforeunload', handleUnload);
21         return () => {
22             unregister();
23             window.removeEventListener('beforeunload', handleUnload);
24         };
25     }, [message]);
28 export default useBeforeUnload;