diff --git a/frontend/src/views/files/Editor.vue b/frontend/src/views/files/Editor.vue index 7199ca0d..95867033 100644 --- a/frontend/src/views/files/Editor.vue +++ b/frontend/src/views/files/Editor.vue @@ -53,7 +53,7 @@ import { getTheme } from "@/utils/theme"; import { marked } from "marked"; import { inject, onBeforeUnmount, onMounted, ref, watchEffect } from "vue"; import { useI18n } from "vue-i18n"; -import { useRoute, useRouter } from "vue-router"; +import { onBeforeRouteUpdate, useRoute, useRouter } from "vue-router"; const $showError = inject("$showError")!; @@ -131,6 +131,15 @@ onBeforeUnmount(() => { editor.value?.destroy(); }); +onBeforeRouteUpdate((to, from, next) => { + if (!editor.value?.session.getUndoManager().isClean()) { + layoutStore.showHover("discardEditorChanges"); + next(false); + } else { + next(); + } +}); + const keyEvent = (event: KeyboardEvent) => { if (event.code === "Escape") { close();