fix(Link): properly pick all aria-* & data-* attrs

This commit is contained in:
Benjamin Canac
2025-03-24 18:58:49 +01:00
parent 1babad4f74
commit ade16b76cf

View File

@@ -1,6 +1,20 @@
import { reactivePick } from '@vueuse/core'
import type { LinkProps } from '../types'
export function pickLinkProps(link: LinkProps & { ariaLabel?: string, title?: string }) {
return reactivePick(link, 'active', 'activeClass', 'ariaCurrentValue', 'ariaLabel', 'as', 'disabled', 'exact', 'exactActiveClass', 'exactHash', 'exactQuery', 'external', 'href', 'inactiveClass', 'noPrefetch', 'noRel', 'prefetch', 'prefetchedClass', 'rel', 'replace', 'target', 'to', 'type', 'title')
export function pickLinkProps(link: LinkProps & { [key: string]: any }) {
const keys = Object.keys(link)
const ariaKeys = keys.filter(key => key.startsWith('aria-'))
const dataKeys = keys.filter(key => key.startsWith('data-'))
const propsToInclude = [
'active', 'activeClass', 'ariaCurrentValue', 'as', 'disabled',
'exact', 'exactActiveClass', 'exactHash', 'exactQuery', 'external',
'href', 'inactiveClass', 'noPrefetch', 'noRel', 'prefetch',
'prefetchedClass', 'rel', 'replace', 'target', 'to', 'type', 'title',
...ariaKeys,
...dataKeys
]
return reactivePick(link, ...propsToInclude)
}