From c87c206d61f0cddaeb991c4a6b9c380eb46e613d Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Sat, 23 Sep 2023 21:14:52 +0200 Subject: [PATCH 1/2] feat(Link): add `active` prop to override default behaviour --- src/runtime/components/elements/Link.vue | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/runtime/components/elements/Link.vue b/src/runtime/components/elements/Link.vue index 98702d277e..ebd014a2b3 100644 --- a/src/runtime/components/elements/Link.vue +++ b/src/runtime/components/elements/Link.vue @@ -50,6 +50,10 @@ export default defineComponent({ type: Boolean, default: false }, + active: { + type: Boolean, + default: false + }, exactQuery: { type: Boolean, default: false @@ -65,6 +69,10 @@ export default defineComponent({ }, setup (props) { function resolveLinkClass (route, $route, { isActive, isExactActive }: { isActive: boolean, isExactActive: boolean }) { + if (props.active) { + return props.activeClass + } + if (props.exactQuery && !isEqual(route.query, $route.query)) { return props.inactiveClass } From 682e728ce89181013d63da71579042e60c63d9e0 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Sun, 24 Sep 2023 19:19:24 +0200 Subject: [PATCH 2/2] up --- src/runtime/components/elements/Link.vue | 4 ++-- src/runtime/types/link.d.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/runtime/components/elements/Link.vue b/src/runtime/components/elements/Link.vue index ebd014a2b3..76c96a0d32 100644 --- a/src/runtime/components/elements/Link.vue +++ b/src/runtime/components/elements/Link.vue @@ -46,11 +46,11 @@ export default defineComponent({ type: Boolean, default: null }, - exact: { + active: { type: Boolean, default: false }, - active: { + exact: { type: Boolean, default: false }, diff --git a/src/runtime/types/link.d.ts b/src/runtime/types/link.d.ts index 741dd1d8b2..535a58a31e 100644 --- a/src/runtime/types/link.d.ts +++ b/src/runtime/types/link.d.ts @@ -1,6 +1,7 @@ import type { NuxtLinkProps } from '#app' export interface Link extends NuxtLinkProps { + active?: boolean exact?: boolean exactQuery?: boolean exactMatch?: boolean