mirror of
https://github.com/zammad/zammad
synced 2026-05-24 09:48:36 +00:00
29 lines
766 B
TypeScript
29 lines
766 B
TypeScript
// Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
import { tryOnScopeDispose } from '@vueuse/shared'
|
|
import { ref } from 'vue'
|
|
|
|
export const useTouchDevice = () => {
|
|
const isTouchDevice = ref(false)
|
|
|
|
if (window) {
|
|
let mediaQuery: MediaQueryList
|
|
|
|
const observeCallback = () => {
|
|
isTouchDevice.value = window.matchMedia('(pointer: coarse)').matches
|
|
mediaQuery?.removeEventListener('change', observeCallback)
|
|
mediaQuery = window.matchMedia('(pointer: coarse)')
|
|
mediaQuery.addEventListener('change', observeCallback, { once: true })
|
|
}
|
|
|
|
observeCallback()
|
|
|
|
tryOnScopeDispose(() => {
|
|
mediaQuery?.removeEventListener('change', observeCallback)
|
|
})
|
|
}
|
|
|
|
return {
|
|
isTouchDevice,
|
|
}
|
|
}
|