UNPKG

stream-chat-react-native-core

Version:

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

31 lines (25 loc) 1 kB
import { createContext, useContext } from 'react'; export type AccessibilityAnnouncePriority = 'assertive' | 'polite'; export type AccessibilityAnnounce = ( message: string, priority?: AccessibilityAnnouncePriority, ) => void; export type AccessibilityAnnouncerContextValue = { announce: AccessibilityAnnounce; }; const noopAnnounce: AccessibilityAnnounce = () => undefined; export const AccessibilityAnnouncerContext = createContext< AccessibilityAnnouncerContextValue | undefined >(undefined); /** * Returns the imperative announcer. When called outside the AccessibilityProvider's * announcer context (which happens any time the SDK's a11y is disabled), this * returns a no-op. * * Mirrors the React SDK's `useAriaLiveAnnouncer` so cross-SDK code reads the same. */ export const useAccessibilityAnnouncer = (): AccessibilityAnnounce => { const contextValue = useContext(AccessibilityAnnouncerContext); if (!contextValue) return noopAnnounce; return contextValue.announce; };