mirror of
https://github.com/streamich/react-use.git
synced 2026-01-18 14:06:52 +00:00
26 lines
537 B
TypeScript
26 lines
537 B
TypeScript
import { useEffect } from 'react';
|
|
|
|
const useBeforeUnload = (enabled: boolean = true, message?: string) => {
|
|
useEffect(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
|
|
const handler = (event: BeforeUnloadEvent) => {
|
|
event.preventDefault();
|
|
|
|
if (message) {
|
|
event.returnValue = message;
|
|
}
|
|
|
|
return message;
|
|
};
|
|
|
|
window.addEventListener('beforeunload', handler);
|
|
|
|
return () => window.removeEventListener('beforeunload', handler);
|
|
}, [message, enabled]);
|
|
};
|
|
|
|
export default useBeforeUnload;
|