stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
43 lines • 2.04 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useAccessibilityServiceEnabled = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _reactNative = require("react-native");
var _AccessibilityContext = require("../../contexts/accessibilityContext/AccessibilityContext");
var useAccessibilityServiceEnabled = () => {
var _useAccessibilityCont = (0, _AccessibilityContext.useAccessibilityContext)(),
enabled = _useAccessibilityCont.enabled;
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
isEnabled = _useState2[0],
setIsEnabled = _useState2[1];
(0, _react.useEffect)(() => {
if (_reactNative.Platform.OS !== 'android' || !enabled) {
setIsEnabled(false);
return;
}
var cancelled = false;
var refresh = () => {
_reactNative.AccessibilityInfo.isAccessibilityServiceEnabled == null || _reactNative.AccessibilityInfo.isAccessibilityServiceEnabled().then(value => {
if (!cancelled) setIsEnabled(value);
}).catch(() => {});
};
refresh();
var screenReaderSubscription = _reactNative.AccessibilityInfo.addEventListener('screenReaderChanged', refresh);
var appStateSubscription = _reactNative.AppState.addEventListener('change', state => {
if (state === 'active') refresh();
});
return () => {
cancelled = true;
screenReaderSubscription == null || screenReaderSubscription.remove == null || screenReaderSubscription.remove();
appStateSubscription == null || appStateSubscription.remove == null || appStateSubscription.remove();
};
}, [enabled]);
if (_reactNative.Platform.OS !== 'android' || !enabled) return false;
return isEnabled;
};
exports.useAccessibilityServiceEnabled = useAccessibilityServiceEnabled;
//# sourceMappingURL=useAccessibilityServiceEnabled.js.map