Spaces:
Paused
Paused
File size: 493 Bytes
3092643 | 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 | import { ref, onMounted, onUnmounted } from 'vue'
export function useMediaQuery(query) {
const matches = ref(
typeof window !== 'undefined' ? window.matchMedia(query).matches : false,
)
let mql = null
function update() {
matches.value = mql?.matches ?? false
}
onMounted(() => {
mql = window.matchMedia(query)
mql.addEventListener('change', update)
update()
})
onUnmounted(() => {
mql?.removeEventListener('change', update)
})
return matches
}
|