UNPKG

@awsui/components-react

Version:

AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A

22 lines (21 loc) 1.32 kB
import { useRef, useMemo } from 'react'; import defaultOptionDescription from '../../internal/components/option/option-announcer'; export var useAnnouncement = function (_a) { var announceSelected = _a.announceSelected, highlightedOption = _a.highlightedOption, parentMap = _a.parentMap, selectedAriaLabel = _a.selectedAriaLabel, renderHighlightedAriaLive = _a.renderHighlightedAriaLive; var prevAnnouncedGroup = useRef(undefined); var prevAnnouncement = useRef(''); return useMemo(function () { var message = ''; if (highlightedOption) { var group = parentMap.get(highlightedOption); var groupToAnnounce = group === prevAnnouncedGroup.current ? undefined : group; prevAnnouncedGroup.current = group; message = (renderHighlightedAriaLive || defaultOptionDescription)(highlightedOption.option, groupToAnnounce === null || groupToAnnounce === void 0 ? void 0 : groupToAnnounce.option); if (announceSelected && !renderHighlightedAriaLive) { message = (selectedAriaLabel ? selectedAriaLabel + ' ' : '') + message; } } prevAnnouncement.current = message; return message; }, [announceSelected, highlightedOption, parentMap, selectedAriaLabel, renderHighlightedAriaLive]); };