From c5742b6557f09ef48013a3c1cc7fc9498c5b0a79 Mon Sep 17 00:00:00 2001 From: Nicola Krumschmidt Date: Thu, 22 Oct 2020 16:12:14 +0200 Subject: [PATCH 1/2] Call navigation guard in item route component This fixes the Unsaved Changes dialog not showing up except for singleton collections. --- app/src/modules/collections/routes/item.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/modules/collections/routes/item.vue b/app/src/modules/collections/routes/item.vue index 4280965d78..6b9ad564e5 100644 --- a/app/src/modules/collections/routes/item.vue +++ b/app/src/modules/collections/routes/item.vue @@ -470,6 +470,12 @@ export default defineComponent({ return { deleteAllowed, saveAllowed, archiveAllowed, updateAllowed }; } }, + beforeRouteLeave(to, from, next) { + return (this as any).navigationGuard(to, from, next); + }, + beforeRouteUpdate(to, from, next) { + return (this as any).navigationGuard(to, from, next); + }, }); From f17dbd4e25bdd35ac41327d5cf7a05e45890b613 Mon Sep 17 00:00:00 2001 From: Nicola Krumschmidt Date: Thu, 22 Oct 2020 18:20:54 +0200 Subject: [PATCH 2/2] Use hasEdits computed inside navigation guard --- app/src/modules/collections/routes/item.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/modules/collections/routes/item.vue b/app/src/modules/collections/routes/item.vue index 6b9ad564e5..df71a117f8 100644 --- a/app/src/modules/collections/routes/item.vue +++ b/app/src/modules/collections/routes/item.vue @@ -324,9 +324,7 @@ export default defineComponent({ useShortcut('meta+shift+s', saveAndAddNew, form); const navigationGuard: NavigationGuard = (to, from, next) => { - const hasEdits = Object.keys(edits.value).length > 0; - - if (hasEdits) { + if (hasEdits.value) { confirmLeave.value = true; leaveTo.value = to.fullPath; return next(false);