UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

41 lines (40 loc) 1.36 kB
import { C as computed, It as ref } from "./vue.runtime.esm-bundler-tP5dCd7J.js"; import { _t as useI18n } from "./_MapCache-ficiegRb.js"; import { gr as useCanvasStore, oa as useUIStore } from "./builder.store-sBTWwxRU.js"; import { Ro as VIEWS } from "./constants-BbpucWL4.js"; function useBeforeUnload({ route }) { const uiStore = useUIStore(); const canvasStore = useCanvasStore(); const i18n = useI18n(); const unloadTimeout = ref(null); const isDemoRoute = computed(() => route.name === VIEWS.DEMO); const handlers = []; function onBeforeUnload(e) { if (isDemoRoute.value || window.preventNodeViewBeforeUnload) return; handlers.forEach((handler) => handler()); if (uiStore.stateIsDirty) { e.returnValue = true; return true; } else { canvasStore.startLoading(i18n.baseText("nodeView.redirecting")); return; } } function addBeforeUnloadHandler(handler) { handlers.push(handler); } function addBeforeUnloadEventBindings() { window.addEventListener("beforeunload", onBeforeUnload); } function removeBeforeUnloadEventBindings() { if (unloadTimeout.value) clearTimeout(unloadTimeout.value); window.removeEventListener("beforeunload", onBeforeUnload); } return { onBeforeUnload, addBeforeUnloadEventBindings, removeBeforeUnloadEventBindings, addBeforeUnloadHandler }; } export { useBeforeUnload as t };