UNPKG

stream-chat-react-native-core

Version:

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

38 lines 1.82 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.NotificationAnnouncer = void 0; var _react = require("react"); var _useAccessibilityAnnouncer = require("./useAccessibilityAnnouncer"); var _AccessibilityContext = require("../../contexts/accessibilityContext/AccessibilityContext"); var _ChatContext = require("../../contexts/chatContext/ChatContext"); var _TranslationContext = require("../../contexts/translationContext/TranslationContext"); var NotificationAnnouncer = () => { var _useAccessibilityCont = (0, _AccessibilityContext.useAccessibilityContext)(), announceConnectionState = _useAccessibilityCont.announceConnectionState, enabled = _useAccessibilityCont.enabled; var _useChatContext = (0, _ChatContext.useChatContext)(), connectionRecovering = _useChatContext.connectionRecovering, isOnline = _useChatContext.isOnline; var announce = (0, _useAccessibilityAnnouncer.useAccessibilityAnnouncer)(); var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(), t = _useTranslationContex.t; var previousIsOnlineRef = (0, _react.useRef)(undefined); (0, _react.useEffect)(() => { if (!enabled || !announceConnectionState) return; if (previousIsOnlineRef.current === undefined) { previousIsOnlineRef.current = isOnline; return; } if (previousIsOnlineRef.current === isOnline) return; previousIsOnlineRef.current = isOnline; if (isOnline) { announce(t('a11y/Connected'), 'polite'); } else { announce(connectionRecovering ? t('a11y/Reconnecting') : t('a11y/Offline'), 'assertive'); } }, [announce, announceConnectionState, connectionRecovering, enabled, isOnline, t]); return null; }; exports.NotificationAnnouncer = NotificationAnnouncer; //# sourceMappingURL=NotificationAnnouncer.js.map