Skip to content

Commit 6566b1b

Browse files
committed
fix(ui): view transitions hangs browser instance
1 parent 15dffc2 commit 6566b1b

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

app/plugins/view-transitions.client.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,20 @@ export default defineNuxtPlugin(nuxtApp => {
5151
let changeRoute: () => void
5252
const ready = new Promise<void>(resolve => (changeRoute = resolve))
5353

54-
transition = document.startViewTransition(() => {
54+
try {
55+
transition = document.startViewTransition(() => {
56+
changeRoute()
57+
return promise
58+
})
59+
60+
transition.finished.finally(resetTransitionState)
61+
await nuxtApp.callHook('page:view-transition:start', transition)
62+
} catch (err) {
63+
console.error('View Transition failed:', err)
5564
changeRoute!()
56-
return promise
57-
})
58-
59-
transition.finished.then(resetTransitionState)
60-
61-
await nuxtApp.callHook('page:view-transition:start', transition)
65+
finishTransition?.()
66+
resetTransitionState()
67+
}
6268

6369
return ready
6470
})
@@ -80,7 +86,7 @@ export default defineNuxtPlugin(nuxtApp => {
8086
// Finish when page render completes
8187
nuxtApp.hook('page:finish', () => {
8288
finishTransition?.()
83-
resetTransitionState()
89+
// Do not reset state here, let transition.finished handle it
8490
})
8591
})
8692

0 commit comments

Comments
 (0)