16 lines
449 B
TypeScript
16 lines
449 B
TypeScript
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;
|
|
};
|