diff --git a/src/composition/use-relation.ts b/src/composition/use-relation.ts new file mode 100644 index 000000000..53c47b2b9 --- /dev/null +++ b/src/composition/use-relation.ts @@ -0,0 +1,25 @@ +import { VNode, isVNode, VNodeNormalizedChildren } from 'vue'; + +export function flattenVNodes(children: VNodeNormalizedChildren) { + const result: VNode[] = []; + + const traverse = (children: VNodeNormalizedChildren) => { + if (!Array.isArray(children)) { + return; + } + + children.forEach((child) => { + if (isVNode(child)) { + result.push(child); + + if (child.children) { + traverse(child.children); + } + } + }); + }; + + traverse(children); + + return result; +}