From b35c991634c76caf1fc6be51b3e2cccabfc7aeb0 Mon Sep 17 00:00:00 2001 From: florianfederspiel Date: Sat, 10 Jan 2026 19:49:28 +0100 Subject: [PATCH] Fixed PageLeaveGuard.vue Dark Mode --- frontend/components/PageLeaveGuard.vue | 124 +++++++++++++++++++------ 1 file changed, 97 insertions(+), 27 deletions(-) diff --git a/frontend/components/PageLeaveGuard.vue b/frontend/components/PageLeaveGuard.vue index af9a563..a6cc4a5 100644 --- a/frontend/components/PageLeaveGuard.vue +++ b/frontend/components/PageLeaveGuard.vue @@ -2,22 +2,19 @@ import { ref, onMounted, onBeforeUnmount } from 'vue' import { onBeforeRouteLeave } from 'vue-router' -// Wir erwarten eine Prop, die sagt, ob geschützt werden soll const props = defineProps<{ - when: boolean // z.B. true, wenn Formular dirty ist + when: boolean }>() const showModal = ref(false) const pendingNext = ref void)>(null) -// --- 1. Interne Navigation (Nuxt) --- +// --- 1. Interne Navigation --- onBeforeRouteLeave((to, from, next) => { if (!props.when) { next() return } - - // Navigation pausieren & Modal zeigen pendingNext.value = next showModal.value = true }) @@ -29,10 +26,10 @@ const confirmLeave = () => { const cancelLeave = () => { showModal.value = false - // Navigation wird implizit abgebrochen + // Navigation abbrechen (pendingNext verfällt) } -// --- 2. Externe Navigation (Browser Tab schließen) --- +// --- 2. Browser Tab schließen --- const handleBeforeUnload = (e: BeforeUnloadEvent) => { if (props.when) { e.preventDefault() @@ -50,12 +47,12 @@ onBeforeUnmount(() => window.removeEventListener('beforeunload', handleBeforeUnl
- Seite wirklich verlassen? + Seite verlassen?
- Du hast ungespeicherte Änderungen. Diese gehen verloren, wenn du die Seite verlässt. + Du hast ungespeicherte Änderungen. Wenn du die Seite verlässt, gehen diese verloren.
@@ -64,7 +61,7 @@ onBeforeUnmount(() => window.removeEventListener('beforeunload', handleBeforeUnl Nein, bleiben
@@ -74,25 +71,98 @@ onBeforeUnmount(() => window.removeEventListener('beforeunload', handleBeforeUnl \ No newline at end of file