UNPKG

@theoplayer/react-native-ui

Version:

A React Native UI for @theoplayer/react-native

37 lines (36 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePointerMove = void 0; var _react = require("react"); var _reactNative = require("react-native"); /** * Listens to pointer events on Web. */ const usePointerMove = (elementId, onMove, onLeave) => { (0, _react.useEffect)(() => { if (_reactNative.Platform.OS !== 'web') { return; } const elementRef = document?.querySelector(elementId); if (elementRef) { /** * Listening to `mousemove` events instead of `pointermove`, which requires the page to be "activated" through * a tap/click first. */ elementRef?.addEventListener('mousemove', onMove); if (onLeave) { elementRef?.addEventListener('mouseleave', onLeave); } } return () => { elementRef?.removeEventListener('mousemove', onMove); if (onLeave) { elementRef?.removeEventListener('mouseleave', onLeave); } }; }, [onMove, onLeave, elementId]); }; exports.usePointerMove = usePointerMove; //# sourceMappingURL=usePointerMove.js.map