Skip to content

Commit d8b5c4a

Browse files
authored
fix(VDataTable): expand rows when items are plain array (#22109)
fixes #22080
1 parent 5388749 commit d8b5c4a

File tree

1 file changed

+8
-9
lines changed
  • packages/vuetify/src/components/VDataTable/composables

1 file changed

+8
-9
lines changed

packages/vuetify/src/components/VDataTable/composables/expand.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import { useProxiedModel } from '@/composables/proxiedModel'
33

44
// Utilities
5-
import { inject, provide, toRef } from 'vue'
6-
import { isObject, propsFactory } from '@/util'
5+
import { inject, provide, toRaw, toRef } from 'vue'
6+
import { propsFactory } from '@/util'
77

88
// Types
99
import type { InjectionKey, PropType, Ref } from 'vue'
@@ -40,24 +40,23 @@ export function provideExpanded (props: ExpandProps) {
4040
return [...v.values()]
4141
})
4242

43-
function getItemKey (item: DataTableItem) {
44-
return isObject(item.value) ? item.key : item.value
45-
}
46-
4743
function expand (item: DataTableItem, value: boolean) {
4844
const newExpanded = new Set(expanded.value)
45+
const rawValue = toRaw(item.value)
4946

5047
if (!value) {
51-
newExpanded.delete(getItemKey(item))
48+
const item = [...expanded.value].find(x => toRaw(x) === rawValue)!
49+
newExpanded.delete(item)
5250
} else {
53-
newExpanded.add(getItemKey(item))
51+
newExpanded.add(rawValue)
5452
}
5553

5654
expanded.value = newExpanded
5755
}
5856

5957
function isExpanded (item: DataTableItem) {
60-
return expanded.value.has(getItemKey(item))
58+
const rawValue = toRaw(item.value)
59+
return [...expanded.value].some(x => toRaw(x) === rawValue)
6160
}
6261

6362
function toggleExpand (item: DataTableItem) {

0 commit comments

Comments
 (0)