import { isFunction } from '../types'; import type { ComponentPublicInstance, Ref } from 'vue'; export type RefSetter = (el: Element | ComponentPublicInstance | undefined) => void; export const composeRefs = (...refs: (Ref | RefSetter)[]) => { return (el: Element | ComponentPublicInstance | null) => { refs.forEach((ref) => { if (isFunction(ref)) { ref(el as Element | ComponentPublicInstance); } else { ref.value = el as HTMLElement | undefined; } }); }; };