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
JavaScript
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