import React, { useEffect, useContext } from 'react'; import AnnouncerContext from '~/Providers/AnnouncerContext'; interface LiveMessageProps { message: string; 'aria-live': 'polite' | 'assertive'; clearOnUnmount?: boolean | 'true' | 'false'; } const LiveMessage: React.FC = ({ message, 'aria-live': ariaLive, clearOnUnmount, }) => { const { announceAssertive, announcePolite } = useContext(AnnouncerContext); useEffect(() => { if (ariaLive === 'assertive') { announceAssertive(message); } else if (ariaLive === 'polite') { announcePolite(message); } }, [message, ariaLive, announceAssertive, announcePolite]); useEffect(() => { return () => { if (clearOnUnmount === true || clearOnUnmount === 'true') { announceAssertive(''); announcePolite(''); } }; }, [clearOnUnmount, announceAssertive, announcePolite]); return null; }; export default LiveMessage;