Files
Dorod-Sky/skyvern-frontend/src/hooks/useShouldNotifyWhenClosingTab.ts
2024-11-11 21:41:10 +03:00

26 lines
726 B
TypeScript

import { useEffect } from "react";
function useShouldNotifyWhenClosingTab(shouldNotify: boolean) {
useEffect(() => {
function f(event: BeforeUnloadEvent) {
// this function is here to have a stable reference only
if (!shouldNotify) {
return undefined;
}
// Recommended
event.preventDefault();
// Included for legacy support, e.g. Chrome/Edge < 119
// refer to https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
event.returnValue = true;
}
window.addEventListener("beforeunload", f);
return () => {
window.removeEventListener("beforeunload", f);
};
}, [shouldNotify]);
}
export { useShouldNotifyWhenClosingTab };