UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

46 lines 1.47 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.useSetAccessibilityFocus = void 0; var _react = require("react"); var _reactNative = require("react-native"); var _useScreenReaderEnabled = require("./useScreenReaderEnabled"); var resolveNode = target => { if (target == null) { return null; } if (typeof target === 'number') { return target; } var current = target.current; return current == null ? null : (0, _reactNative.findNodeHandle)(current); }; var useSetAccessibilityFocus = () => { var screenReaderEnabled = (0, _useScreenReaderEnabled.useScreenReaderEnabled)(); var screenReaderEnabledRef = (0, _react.useRef)(screenReaderEnabled); screenReaderEnabledRef.current = screenReaderEnabled; var rafRef = (0, _react.useRef)(null); (0, _react.useEffect)(() => () => { if (rafRef.current != null) { cancelAnimationFrame(rafRef.current); } }, []); return (0, _react.useCallback)(target => { if (!screenReaderEnabledRef.current) { return; } var node = resolveNode(target); if (node == null) { return; } if (rafRef.current != null) { cancelAnimationFrame(rafRef.current); } rafRef.current = requestAnimationFrame(() => { rafRef.current = null; _reactNative.AccessibilityInfo.setAccessibilityFocus(node); }); }, []); }; exports.useSetAccessibilityFocus = useSetAccessibilityFocus; //# sourceMappingURL=useSetAccessibilityFocus.js.map