@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
34 lines (33 loc) • 1.26 kB
JavaScript
import React, { useMemo, useRef } from 'react';
import { LiveRegion } from '../internal/components/live-region';
import defaultOptionDescription from '../internal/components/option/option-announcer';
import { getParentGroup } from './controller';
var Announcer = function (_a) {
var item = _a.item, usingMouse = _a.usingMouse;
var prevAnnouncedGroup = useRef(undefined);
var prevAnnouncement = useRef('');
var message = useMemo(function () {
if (usingMouse.current) {
return prevAnnouncement.current;
}
if (!item) {
prevAnnouncement.current = '';
prevAnnouncedGroup.current = undefined;
return '';
}
else {
var parentGroup = getParentGroup(item);
if (parentGroup !== prevAnnouncedGroup.current) {
prevAnnouncedGroup.current = parentGroup;
}
else {
parentGroup = undefined;
}
var message_1 = defaultOptionDescription(item, parentGroup);
prevAnnouncement.current = message_1;
return message_1;
}
}, [item, usingMouse]);
return React.createElement(LiveRegion, { message: message });
};
export default Announcer;