show discard changes modal on page navigation

pull/5260/head
Ryan Miller 2025-07-11 20:16:11 -04:00 committed by Ryan
parent dbc61719ae
commit c78b2dfb93
1 changed files with 10 additions and 1 deletions

View File

@ -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<IToastError>("$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();