wix-style-react
Version:
wix-style-react
33 lines • 1.12 kB
JavaScript
import React, { forwardRef } from 'react';
import PropTypes from 'prop-types';
import { classes } from './LiveRegion.st.css';
/** LiveRegion */
const LiveRegion = forwardRef(({ dataHook }, ref) => {
const initialState = {
message: '',
role: 'status',
};
const [state, setState] = React.useReducer((currentState, newState) => ({
...currentState,
...newState,
}), initialState);
const broadcast = ({ message: newMessage, role = 'status', }) => {
if (state.message === newMessage) {
setState({ message: newMessage + ' ', role });
}
else {
setState({ message: newMessage, role });
}
};
React.useImperativeHandle(ref, () => ({
broadcast,
}));
return (React.createElement("div", { "data-hook": dataHook, className: classes.root, role: state.role, "aria-relevant": "all" }, state.message));
});
LiveRegion.displayName = 'LiveRegion';
LiveRegion.propTypes = {
dataHook: PropTypes.string,
className: PropTypes.string,
};
export default LiveRegion;
//# sourceMappingURL=LiveRegion.js.map