UNPKG

stream-chat-react-native-core

Version:

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

45 lines 2.12 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.OverlayA11yShield = OverlayA11yShield; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _a11y = require("../../a11y"); var _AccessibilityContext = require("../../contexts/accessibilityContext/AccessibilityContext"); var _OverlayContext = require("../../contexts/overlayContext/OverlayContext"); var _hooks = require("../../hooks"); var _messageOverlayStore = require("../../state-store/message-overlay-store"); var _jsxRuntime = require("react/jsx-runtime"); var _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Accessibility/OverlayA11yShield.tsx"; var messageOverlayActiveSelector = state => ({ isMessageOverlayActive: state.id !== undefined }); var useShouldActivateTrap = () => { var _useAccessibilityCont = (0, _AccessibilityContext.useAccessibilityContext)(), a11yEnabled = _useAccessibilityCont.enabled; var _useOverlayContext = (0, _OverlayContext.useOverlayContext)(), overlay = _useOverlayContext.overlay; var _useStateStore = (0, _hooks.useStateStore)(_messageOverlayStore.overlayStore, messageOverlayActiveSelector), isMessageOverlayActive = _useStateStore.isMessageOverlayActive; var a11yServiceEnabled = (0, _a11y.useAccessibilityServiceEnabled)(); return a11yEnabled && (overlay === 'gallery' || isMessageOverlayActive) && a11yServiceEnabled; }; function OverlayA11yShield({ children }) { var shouldActivateTrap = useShouldActivateTrap(); if (_reactNative.Platform.OS !== 'android') { return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, { children: children }); } return (0, _jsxRuntime.jsx)(_reactNative.View, { importantForAccessibility: shouldActivateTrap ? 'no-hide-descendants' : undefined, style: _reactNative.StyleSheet.absoluteFill, pointerEvents: "box-none", testID: "overlay-a11y-shield", children: children }); } //# sourceMappingURL=OverlayA11yShield.js.map