EASYAIuniappNewUI/node_modules/@tuniao/tnui-vue3-uniapp/hooks/use-ordered-children/index.ts
2025-02-08 18:50:38 +08:00

24 lines
549 B
TypeScript

import { shallowRef } from 'vue'
export const useOrderedChildren = <T extends { uid: number }>() => {
const children: Record<number, T> = {}
const orderedChildren = shallowRef<T[]>([])
const addChild = (child: T) => {
children[child.uid] = child
orderedChildren.value.push(child)
}
const removeChild = (uid: number) => {
delete children[uid]
orderedChildren.value = orderedChildren.value.filter(
(child) => child.uid !== uid
)
}
return {
children: orderedChildren,
addChild,
removeChild,
}
}