@@ -89,11 +89,12 @@ export interface LinkSlots {
8989<script setup lang="ts">
9090import { computed } from ' vue'
9191import { defu } from ' defu'
92- import { isEqual , diff } from ' ohash/utils'
92+ import { isEqual } from ' ohash/utils'
9393import { useForwardProps } from ' reka-ui'
9494import { reactiveOmit } from ' @vueuse/core'
9595import { useRoute , useAppConfig } from ' #imports'
9696import { tv } from ' ../utils/tv'
97+ import { isPartiallyEqual } from ' ../utils/link'
9798import ULinkBase from ' ./LinkBase.vue'
9899
99100defineOptions ({ inheritAttrs: false })
@@ -125,20 +126,6 @@ const ui = computed(() => tv({
125126 }, appConfig .ui ?.link || {})
126127}))
127128
128- function isPartiallyEqual(item1 : any , item2 : any ) {
129- const diffedKeys = diff (item1 , item2 ).reduce ((filtered , q ) => {
130- if (q .type === ' added' ) {
131- filtered .add (q .key )
132- }
133- return filtered
134- }, new Set <string >())
135-
136- const item1Filtered = Object .fromEntries (Object .entries (item1 ).filter (([key ]) => ! diffedKeys .has (key )))
137- const item2Filtered = Object .fromEntries (Object .entries (item2 ).filter (([key ]) => ! diffedKeys .has (key )))
138-
139- return isEqual (item1Filtered , item2Filtered )
140- }
141-
142129function isLinkActive({ route : linkRoute , isActive , isExactActive }: any ) {
143130 if (props .active !== undefined ) {
144131 return props .active
0 commit comments