@minimaltech/ra-infra
Version:
Minimal Technology ReactJS Infrastructure
24 lines • 915 B
JavaScript
import React from 'react';
export const useBeforeUnload = (params) => {
const { enabled, message } = params;
//---------------------------------------------------------------------------
const handleBeforeUnload = React.useCallback((event) => {
const isEnabled = enabled instanceof Function ? enabled() : enabled;
if (!isEnabled) {
return;
}
event.preventDefault();
if (message) {
event.returnValue = message;
}
return message;
}, [enabled, message]);
//---------------------------------------------------------------------------
React.useEffect(() => {
window.addEventListener('beforeunload', handleBeforeUnload);
return () => {
window.removeEventListener('beforeunload', handleBeforeUnload);
};
}, [handleBeforeUnload]);
};
//# sourceMappingURL=use-before-unload.js.map