Files
linsa-linsa-io/web/app/hooks/use-touch-sensor.ts
Aslam a440828f8c chore: Enhancement + New Feature (#185)
* wip

* wip page

* chore: style

* wip pages

* wip pages

* chore: toggle

* chore: link

* feat: topic search

* chore: page section

* refactor: apply tailwind class ordering

* fix: handle loggedIn user for guest route

* feat: folder & image schema

* chore: move utils to shared

* refactor: tailwind class ordering

* feat: img ext for editor

* refactor: remove qa

* fix: tanstack start

* fix: wrong import

* chore: use toast

* chore: schema
2024-10-18 21:18:20 +07:00

28 lines
673 B
TypeScript

import { isClient } from "@shared/utils"
import * as React from "react"
export function useTouchSensor() {
const [isTouchDevice, setIsTouchDevice] = React.useState(false)
React.useEffect(() => {
const detectTouch = () => {
setIsTouchDevice(
isClient() &&
(window.matchMedia?.("(hover: none) and (pointer: coarse)")
?.matches ||
"ontouchstart" in window ||
navigator.maxTouchPoints > 0),
)
}
detectTouch()
window.addEventListener("touchstart", detectTouch, false)
return () => {
window.removeEventListener("touchstart", detectTouch)
}
}, [])
return isTouchDevice
}