This is the hook that I use right now
export default function prevent_page_leave() {
const beforeUnloadListener = (event) => {
// Prevent navigation and show confirmation dialog
event.preventDefault();
return event.returnValue = '';
};
return {
mounted() {
window.addEventListener("beforeunload", beforeUnloadListener, { capture: true });
// Remove "beforeunload" event listener and redirect to given path
addEventListener(
"phx:force_redirect",
e => {
window.removeEventListener("beforeunload", beforeUnloadListener, { capture: true });
window.location.href = e.detail.to;
}
)
}
};
}


















