From fe433a4222dd9248ec04bd17b366ffa1aa00f94e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Fri, 4 Nov 2022 19:09:28 +0100 Subject: [PATCH] fix(nuxt): check if global transitions are activated for scroll behavior (#8700) --- packages/nuxt/src/pages/runtime/router.options.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/pages/runtime/router.options.ts b/packages/nuxt/src/pages/runtime/router.options.ts index ce63f731aca..d5e8acc7e27 100644 --- a/packages/nuxt/src/pages/runtime/router.options.ts +++ b/packages/nuxt/src/pages/runtime/router.options.ts @@ -2,6 +2,8 @@ import type { RouterConfig } from '@nuxt/schema' import type { RouterScrollBehavior, RouteLocationNormalized } from 'vue-router' import { nextTick } from 'vue' import { useNuxtApp } from '#app' +// @ts-ignore +import { appPageTransition as defaultPageTransition } from '#build/nuxt.config.mjs' type ScrollPosition = Awaited> @@ -31,8 +33,8 @@ export default { } // Wait for `page:transition:finish` or `page:finish` depending on if transitions are enabled or not - const hasTransition = to.meta.pageTransition !== false && from.meta.pageTransition !== false - const hookToWait = hasTransition ? 'page:transition:finish' : 'page:finish' + const hasTransition = (route: RouteLocationNormalized) => !!(route.meta.pageTransition ?? defaultPageTransition) + const hookToWait = (hasTransition(from) && hasTransition(to)) ? 'page:transition:finish' : 'page:finish' return new Promise((resolve) => { nuxtApp.hooks.hookOnce(hookToWait, async () => { await nextTick()