From 89fc5fa50f8a6db1af54ac524891c865945614e8 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 8 Nov 2022 10:27:49 +0100 Subject: [PATCH 1/5] feat(nuxt-link): add isExternal to slot props --- packages/nuxt/src/app/components/nuxt-link.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index 42dbc3d5ae2..8f77d9a4333 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -47,13 +47,13 @@ export type NuxtLinkProps = { const requestIdleCallback: Window['requestIdleCallback'] = process.server ? undefined as any : (globalThis.requestIdleCallback || ((cb) => { - const start = Date.now() - const idleDeadline = { - didTimeout: false, - timeRemaining: () => Math.max(0, 50 - (Date.now() - start)) - } - return setTimeout(() => { cb(idleDeadline) }, 1) - })) + const start = Date.now() + const idleDeadline = { + didTimeout: false, + timeRemaining: () => Math.max(0, 50 - (Date.now() - start)) + } + return setTimeout(() => { cb(idleDeadline) }, 1) + })) const cancelIdleCallback: Window['cancelIdleCallback'] = process.server ? null as any @@ -203,8 +203,8 @@ export function defineNuxtLink (options: NuxtLinkOptions) { unobserve?.() unobserve = null await Promise.all([ - nuxtApp.hooks.callHook('link:prefetch', to.value as string).catch(() => {}), - !isExternal.value && preloadRouteComponents(to.value as string, router).catch(() => {}) + nuxtApp.hooks.callHook('link:prefetch', to.value as string).catch(() => { }), + !isExternal.value && preloadRouteComponents(to.value as string, router).catch(() => { }) ]) prefetched.value = true }) @@ -265,6 +265,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { route: router.resolve(href!), rel, target, + isExternal, isActive: false, isExactActive: false }) From 6e040b884ed0e216240e95fd69c10d92e2e3ef19 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 8 Nov 2022 10:29:33 +0100 Subject: [PATCH 2/5] chore: lint --- packages/nuxt/src/app/components/nuxt-link.ts | 14 +++++++------- test/fixtures/basic/types.ts | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index 8f77d9a4333..ac385bf2f61 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -47,13 +47,13 @@ export type NuxtLinkProps = { const requestIdleCallback: Window['requestIdleCallback'] = process.server ? undefined as any : (globalThis.requestIdleCallback || ((cb) => { - const start = Date.now() - const idleDeadline = { - didTimeout: false, - timeRemaining: () => Math.max(0, 50 - (Date.now() - start)) - } - return setTimeout(() => { cb(idleDeadline) }, 1) - })) + const start = Date.now() + const idleDeadline = { + didTimeout: false, + timeRemaining: () => Math.max(0, 50 - (Date.now() - start)) + } + return setTimeout(() => { cb(idleDeadline) }, 1) + })) const cancelIdleCallback: Window['cancelIdleCallback'] = process.server ? null as any diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 69899120afc..a10deab0da4 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -5,10 +5,10 @@ import type { AppConfig } from '@nuxt/schema' import type { FetchError } from 'ohmyfetch' import { NavigationFailure, RouteLocationNormalizedLoaded, RouteLocationRaw, useRouter as vueUseRouter } from 'vue-router' -import { defineNuxtConfig } from '~~/../../../packages/nuxt/config' import type { NavigateToOptions } from '~~/../../../packages/nuxt/dist/app/composables/router' // eslint-disable-next-line import/order import { isVue3 } from '#app' +import { defineNuxtConfig } from '~~/../../../packages/nuxt/config' import { useRouter } from '#imports' interface TestResponse { message: string } From 9918df7e2e84ecbc1e2a0388f9ebe931fb65f2f7 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 8 Nov 2022 10:30:30 +0100 Subject: [PATCH 3/5] chore: lint --- packages/nuxt/src/app/components/nuxt-link.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index ac385bf2f61..ed06cada0f0 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -203,8 +203,8 @@ export function defineNuxtLink (options: NuxtLinkOptions) { unobserve?.() unobserve = null await Promise.all([ - nuxtApp.hooks.callHook('link:prefetch', to.value as string).catch(() => { }), - !isExternal.value && preloadRouteComponents(to.value as string, router).catch(() => { }) + nuxtApp.hooks.callHook('link:prefetch', to.value as string).catch(() => {}), + !isExternal.value && preloadRouteComponents(to.value as string, router).catch(() => {}) ]) prefetched.value = true }) From 1a2aba67de9193dc5770a75197221718e047c1c0 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 8 Nov 2022 10:31:36 +0100 Subject: [PATCH 4/5] chore: lint --- test/fixtures/basic/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index a10deab0da4..69899120afc 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -5,10 +5,10 @@ import type { AppConfig } from '@nuxt/schema' import type { FetchError } from 'ohmyfetch' import { NavigationFailure, RouteLocationNormalizedLoaded, RouteLocationRaw, useRouter as vueUseRouter } from 'vue-router' +import { defineNuxtConfig } from '~~/../../../packages/nuxt/config' import type { NavigateToOptions } from '~~/../../../packages/nuxt/dist/app/composables/router' // eslint-disable-next-line import/order import { isVue3 } from '#app' -import { defineNuxtConfig } from '~~/../../../packages/nuxt/config' import { useRouter } from '#imports' interface TestResponse { message: string } From b89549d401e04a11c8500d5f2936961eee9caef9 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 8 Nov 2022 10:48:14 +0100 Subject: [PATCH 5/5] Update packages/nuxt/src/app/components/nuxt-link.ts Co-authored-by: Daniel Roe --- packages/nuxt/src/app/components/nuxt-link.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index ed06cada0f0..ee9225da2da 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -265,7 +265,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { route: router.resolve(href!), rel, target, - isExternal, + isExternal: isExternal.value, isActive: false, isExactActive: false })