1 changed files with 8 additions and 4 deletions
			
			
		@ -1,16 +1,20 @@
					 | 
				
			||||
import type { Ref } from 'vue' | 
				
			||||
import { onBeforeUpdate, ref } from 'vue' | 
				
			||||
 | 
				
			||||
export function useRefs(): [Ref<HTMLElement[]>, (index: number) => (el: HTMLElement) => void] { | 
				
			||||
  const refs = ref([]) as Ref<HTMLElement[]> | 
				
			||||
function useRefs<T = HTMLElement>(): { refs: Ref<T[]>; setRefs: (index: number) => (el: T) => void } { | 
				
			||||
  const refs = ref([]) as Ref<T[]> | 
				
			||||
 | 
				
			||||
  onBeforeUpdate(() => { | 
				
			||||
    refs.value = [] | 
				
			||||
  }) | 
				
			||||
 | 
				
			||||
  const setRefs = (index: number) => (el: HTMLElement) => { | 
				
			||||
  const setRefs = (index: number) => (el: T) => { | 
				
			||||
    refs.value[index] = el | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  return [refs, setRefs] | 
				
			||||
  return { | 
				
			||||
    refs, | 
				
			||||
    setRefs, | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
export { useRefs } | 
				
			||||
					 | 
				
			||||
		Reference in new issue