Files
Docker/WebVue/src/hooks/use-ordered-children/index.ts
T
2026-08-25 15:31:16 +08:00

24 lines
560 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,
};
};