import {createContext, useCallback, useContext, useRef} from 'react' interface LiveRegionContextValue { announce: (message: string, priority?: 'polite' | 'assertive') => void } const LiveRegionContext = createContext(null) export function useLiveRegion() { const context = useContext(LiveRegionContext) if (!context) { return {announce: () => {}} } return context } export function LiveRegionProvider({children}: {children: React.ReactNode}) { const politeRef = useRef(null) const assertiveRef = useRef(null) const announce = useCallback((message: string, priority: 'polite' | 'assertive' = 'polite') => { const element = priority === 'assertive' ? assertiveRef.current : politeRef.current if (element) { element.textContent = '' setTimeout(() => { if (element) element.textContent = message }, 50) } }, []) return ( {children}
) }