| | |
| | | import type { Ref } from 'vue'; |
| | | import type { ComponentPublicInstance, Ref } from 'vue'; |
| | | import { onBeforeUpdate, shallowRef } from 'vue'; |
| | | |
| | | function useRefs(): { |
| | | refs: Ref<HTMLElement[]>; |
| | | setRefs: (index: number) => (el: HTMLElement) => void; |
| | | function useRefs<T = HTMLElement>(): { |
| | | refs: Ref<T[]>; |
| | | setRefs: (index: number) => (el: Element | ComponentPublicInstance | null) => void; |
| | | } { |
| | | const refs = shallowRef([]) as Ref<HTMLElement[]>; |
| | | const refs = shallowRef([]) as Ref<T[]>; |
| | | |
| | | onBeforeUpdate(() => { |
| | | refs.value = []; |
| | | }); |
| | | |
| | | const setRefs = (index: number) => (el: HTMLElement) => { |
| | | refs.value[index] = el; |
| | | const setRefs = (index: number) => (el: Element | ComponentPublicInstance | null) => { |
| | | refs.value[index] = el as T; |
| | | }; |
| | | |
| | | return { |