nit navigation back

This commit is contained in:
Ruben Fiszel
2024-07-02 19:44:44 +02:00
parent 7248b0a5a9
commit 7d0b77862b
@@ -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