From 8257a11dcba9c34053f8061ed1383894d06b2a6c Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Mon, 25 Sep 2023 20:57:41 +0200 Subject: [PATCH] feat(Link): add `active` prop to override default behaviour (#732) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sébastien Chopin --- src/runtime/components/elements/Link.vue | 8 ++++++++ src/runtime/types/link.d.ts | 1 + 2 files changed, 9 insertions(+) diff --git a/src/runtime/components/elements/Link.vue b/src/runtime/components/elements/Link.vue index 98702d27..76c96a0d 100644 --- a/src/runtime/components/elements/Link.vue +++ b/src/runtime/components/elements/Link.vue @@ -46,6 +46,10 @@ export default defineComponent({ type: Boolean, default: null }, + active: { + type: Boolean, + default: false + }, exact: { 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 } diff --git a/src/runtime/types/link.d.ts b/src/runtime/types/link.d.ts index 741dd1d8..535a58a3 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