From c78b2dfb93043cf4c8b620c4e330c81e869d0120 Mon Sep 17 00:00:00 2001 From: Ryan Miller <43447928+Rmiller5466@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:16:11 -0400 Subject: [PATCH] show discard changes modal on page navigation --- frontend/src/views/files/Editor.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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();