File size: 584 Bytes
4d70170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
31
import { onBeforeUnmount, onMounted } from 'vue'

let count = 0

function getScrollingElements() {
  return document.querySelectorAll('.vue-ui-disable-scroll, body')
}

function updateScroll() {
  if (count === 0) {
    getScrollingElements().forEach(el =>
      el.classList.remove('vue-ui-no-scroll'),
    )
  }
  else if (count === 1) {
    getScrollingElements().forEach(el => el.classList.add('vue-ui-no-scroll'))
  }
}

export function useDisableScroll() {
  onMounted(() => {
    count++
    updateScroll()
  })

  onBeforeUnmount(() => {
    count--
    updateScroll()
  })
}