diff options
| author | Ron Lucke <lucke@elan-ev.de> | 2026-03-10 08:50:42 +0100 |
|---|---|---|
| committer | Ron Lucke <lucke@elan-ev.de> | 2026-03-10 08:50:42 +0100 |
| commit | 036aa3d9be58295ebca232aa2d02ada54679b3c1 (patch) | |
| tree | 67c712857ff2dfd0121111edf54c6687fdf76142 /packages/studip-ui/src/composables | |
| parent | f7198ce453deae678c921b8e45c5ee7e00d6e8ee (diff) | |
add basics for essential componentsui-kit-essentials
Diffstat (limited to 'packages/studip-ui/src/composables')
| -rw-r--r-- | packages/studip-ui/src/composables/index.js | 2 | ||||
| -rw-r--r-- | packages/studip-ui/src/composables/useSlotFilter.js | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/packages/studip-ui/src/composables/index.js b/packages/studip-ui/src/composables/index.js index cb0ff5c..7ad2d99 100644 --- a/packages/studip-ui/src/composables/index.js +++ b/packages/studip-ui/src/composables/index.js @@ -1 +1 @@ -export {}; +export { useSlotFilter } from './useSlotFilter.js';
\ No newline at end of file diff --git a/packages/studip-ui/src/composables/useSlotFilter.js b/packages/studip-ui/src/composables/useSlotFilter.js new file mode 100644 index 0000000..5b512d9 --- /dev/null +++ b/packages/studip-ui/src/composables/useSlotFilter.js @@ -0,0 +1,25 @@ +// useSlotFilter.js +import { isVNode, Comment } from 'vue'; + +export function useSlotFilter(slots) { + const getValidChildren = (componentName) => { + const rawNodes = slots.default ? slots.default() : []; + + return rawNodes.filter(vnode => { + if (!isVNode(vnode) || vnode.type === Comment) return false; + + const isCorrectComponent = vnode.type?.name === componentName || + vnode.type?.__name === componentName; + + if (!isCorrectComponent) { + if (vnode.type !== Symbol.for('v-fgt')) { + console.warn(`[UI Kit] ButtonGroup: Element vom Typ "${vnode.type?.name || vnode.type}" wurde entfernt.`); + } + return false; + } + return true; + }); + }; + + return { getValidChildren }; +}
\ No newline at end of file |
