Skip to content

Commit 5f6b584

Browse files
committed
up
1 parent 12303a8 commit 5f6b584

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

src/runtime/components/Link.vue

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,12 @@ export interface LinkSlots {
8989
<script setup lang="ts">
9090
import { computed } from 'vue'
9191
import { defu } from 'defu'
92-
import { isEqual, diff } from 'ohash/utils'
92+
import { isEqual } from 'ohash/utils'
9393
import { useForwardProps } from 'reka-ui'
9494
import { reactiveOmit } from '@vueuse/core'
9595
import { useRoute, useAppConfig } from '#imports'
9696
import { tv } from '../utils/tv'
97+
import { isPartiallyEqual } from '../utils/link'
9798
import ULinkBase from './LinkBase.vue'
9899
99100
defineOptions({ 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-
142129
function isLinkActive({ route: linkRoute, isActive, isExactActive }: any) {
143130
if (props.active !== undefined) {
144131
return props.active

src/runtime/utils/link.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { reactivePick } from '@vueuse/core'
2+
import { isEqual, diff } from 'ohash/utils'
23
import type { LinkProps } from '../types'
34

45
export function pickLinkProps(link: LinkProps & { [key: string]: any }) {
@@ -19,3 +20,17 @@ export function pickLinkProps(link: LinkProps & { [key: string]: any }) {
1920

2021
return reactivePick(link, ...propsToInclude)
2122
}
23+
24+
export function isPartiallyEqual(item1: any, item2: any) {
25+
const diffedKeys = diff(item1, item2).reduce((filtered, q) => {
26+
if (q.type === 'added') {
27+
filtered.add(q.key)
28+
}
29+
return filtered
30+
}, new Set<string>())
31+
32+
const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)))
33+
const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)))
34+
35+
return isEqual(item1Filtered, item2Filtered)
36+
}

0 commit comments

Comments
 (0)