diff --git a/frontend/src/lib/components/common/confirmationModal/UnsavedConfirmationModal.svelte b/frontend/src/lib/components/common/confirmationModal/UnsavedConfirmationModal.svelte index 590d2cc19f..bf0d2193ad 100644 --- a/frontend/src/lib/components/common/confirmationModal/UnsavedConfirmationModal.svelte +++ b/frontend/src/lib/components/common/confirmationModal/UnsavedConfirmationModal.svelte @@ -5,6 +5,7 @@ import type DiffDrawer from '$lib/components/DiffDrawer.svelte' import { cleanValueProperties, orderedJsonStringify, type Value } from '$lib/utils' import { tick } from 'svelte' + import { page } from '$app/stores' export let savedValue: Value | undefined = undefined export let modifiedValue: Value | undefined = undefined @@ -15,15 +16,19 @@ let goingTo: URL | undefined = undefined beforeNavigate(async (newNavigationState) => { + // console.log('beforeNavigate', newNavigationState, bypassBeforeNavigate) if ( !bypassBeforeNavigate && - newNavigationState.type != 'popstate' && newNavigationState.to && + newNavigationState.to.url != $page.url && newNavigationState.to.url.pathname !== newNavigationState.from?.url.pathname ) { + // console.log('going to', newNavigationState.to.url) goingTo = newNavigationState.to.url newNavigationState.cancel() - await tick() // make sure saved value is updated when clicking on save draft or deploy + if (newNavigationState.type != 'popstate') { + await tick() // make sure saved value is updated when clicking on save draft or deploy + } if (savedValue && modifiedValue) { const draftOrDeployed = cleanValueProperties({ ...((savedValue.draft || savedValue) ?? {}), @@ -32,6 +37,7 @@ const current = cleanValueProperties({ ...(modifiedValue ?? {}), path: undefined }) if (orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) { bypassBeforeNavigate = true + console.log('FOO') goto(goingTo) } else { open = true