From f86ab11424469dc43b3e4111e2b0c85f5ab8c697 Mon Sep 17 00:00:00 2001 From: userquin Date: Fri, 29 Mar 2024 21:37:41 +0100 Subject: [PATCH] feat(router): add `NuxtLink` support for `useLink` --- packages/vuetify/src/composables/router.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vuetify/src/composables/router.tsx b/packages/vuetify/src/composables/router.tsx index fec07103e85..b335b3143a3 100644 --- a/packages/vuetify/src/composables/router.tsx +++ b/packages/vuetify/src/composables/router.tsx @@ -50,7 +50,13 @@ export interface UseLink extends Omit>, 'hre } export function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink { - const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string + // NuxtLink component name can be changed in nuxt config file, but we cannot access to that name + // NuxtLink is not registered globally, and so we cannot use resolveDynamicComponent, the user + // must register it globally (vuetify-nuxt-module will add an option to enable global registration) + let RouterLink = resolveDynamicComponent('NuxtLink') as typeof _RouterLink | string + if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) { + RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string + } const isLink = computed(() => !!(props.href || props.to)) const isClickable = computed(() => {