import { useState, useEffect } from 'react'; export const useIsTouch = () => { const [isTouch, setIsTouch] = useState(false); useEffect(() => { const mql = window.matchMedia('(pointer: coarse)'); setIsTouch(mql.matches); const onChange = (ev: MediaQueryListEvent) => setIsTouch(ev.matches); mql.addEventListener('change', onChange); return () => mql.removeEventListener('change', onChange); }, []); return isTouch; };