diff --git a/src/runtime/components/Link.vue b/src/runtime/components/Link.vue index 808f89ad..aaf57eef 100644 --- a/src/runtime/components/Link.vue +++ b/src/runtime/components/Link.vue @@ -74,31 +74,31 @@ const ui = computed(() => tv({ } })) -function isLinkActive(slotProps: any) { +function isLinkActive({ route: linkRoute, isActive, isExactActive }: any) { if (props.active !== undefined) { return props.active } - if (props.exactQuery && !isEqual(slotProps.route.query, route.query)) { + if (props.exactQuery && !isEqual(linkRoute.query, route.query)) { return false } - if (props.exactHash && slotProps.route.hash !== route.hash) { + if (props.exactHash && linkRoute.hash !== route.hash) { return false } - if (props.exact && slotProps.isExactActive) { + if (props.exact && isExactActive) { return true } - if (!props.exact && slotProps.isActive) { + if (!props.exact && isActive) { return true } return false } -function resolveLinkClass(slotProps: any) { - const active = isLinkActive(slotProps) +function resolveLinkClass({ route, isActive, isExactActive }: any) { + const active = isLinkActive({ route, isActive, isExactActive }) if (props.raw) { return [props.class, active ? props.activeClass : props.inactiveClass] @@ -109,12 +109,39 @@ function resolveLinkClass(slotProps: any) { diff --git a/src/runtime/components/LinkBase.vue b/src/runtime/components/LinkBase.vue index e72f19fe..b86adcf6 100644 --- a/src/runtime/components/LinkBase.vue +++ b/src/runtime/components/LinkBase.vue @@ -6,12 +6,9 @@ export interface LinkBaseProps { click?: (e: MouseEvent) => void href?: string navigate?: (e: MouseEvent) => void - route?: object rel?: string target?: string isExternal?: boolean - isActive?: boolean - isExactActive?: boolean }