@@ -112,7 +112,6 @@ export type TreeSlots<
112112
113113<script setup lang="ts" generic =" T extends TreeItem [], VK extends GetItemKeys <T > = ' value' , M extends boolean = false " >
114114import { computed } from ' vue'
115- import type { PropType } from ' vue'
116115import { TreeRoot , TreeItem , useForwardPropsEmits } from ' reka-ui'
117116import { reactivePick , createReusableTemplate } from ' @vueuse/core'
118117import { get } from ' ../utils'
@@ -127,22 +126,14 @@ const slots = defineSlots<TreeSlots<T>>()
127126
128127const rootProps = useForwardPropsEmits (reactivePick (props , ' as' , ' modelValue' , ' defaultValue' , ' items' , ' multiple' , ' expanded' , ' disabled' , ' propagateSelect' ), emits )
129128
130- const [DefineTreeTemplate, ReuseTreeTemplate] = createReusableTemplate <
131- { items ?: NestedItem < T > [], level : number },
132- TreeSlots < T >
133- > ({
134- props: {
135- items: Array as PropType <NestedItem <T >[]>,
136- level: Number
137- }
138- })
129+ const [DefineTreeTemplate, ReuseTreeTemplate] = createReusableTemplate <{ items? : TreeItem [], level: number }, TreeSlots <T >>()
139130
140131const ui = computed (() => tree ({
141132 color: props .color ,
142133 size: props .size
143134}))
144135
145- function getItemLabel( item : NestedItem <T >): string {
136+ function getItemLabel< Item extends TreeItem = NestedItem <T >>( item : Item ): string {
146137 return get (item , props .labelKey as string )
147138}
148139
@@ -209,7 +200,7 @@ const defaultExpanded = computed(() =>
209200 </button >
210201
211202 <ul v-if =" item.children?.length && isExpanded" :class =" ui.listWithChildren({ class: props.ui?.listWithChildren })" >
212- <ReuseTreeTemplate :items =" ( item.children as NestedItem<T>[]) " :level =" level + 1" />
203+ <ReuseTreeTemplate :items =" item.children" :level =" level + 1" />
213204 </ul >
214205 </TreeItem >
215206 </li >
@@ -222,6 +213,6 @@ const defaultExpanded = computed(() =>
222213 :default-expanded =" defaultExpanded"
223214 :selection-behavior =" selectionBehavior"
224215 >
225- <ReuseTreeTemplate :items =" ( items as NestedItem<T>[] | undefined) " :level =" 0" />
216+ <ReuseTreeTemplate :items =" items" :level =" 0" />
226217 </TreeRoot >
227218</template >
0 commit comments