File size: 679 Bytes
89ce340
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { ref, onMounted, onUnmounted } from 'vue'
import { storeToRefs } from 'pinia'
import { useSlidesStore } from '@/store'

export default () => {
  const { slides } = storeToRefs(useSlidesStore())

  const timer = ref<number | null>(null)
  const slidesLoadLimit = ref(50)

  const loadSlide = () => {
    if (slides.value.length > slidesLoadLimit.value) {
      timer.value = setTimeout(() => {
        slidesLoadLimit.value = slidesLoadLimit.value + 20
        loadSlide()
      }, 600)
    }
    else slidesLoadLimit.value = 9999
  }

  onMounted(loadSlide)

  onUnmounted(() => {
    if (timer.value) clearTimeout(timer.value)
  })

  return {
    slidesLoadLimit,
  }
}