57 lines
1.2 KiB
React
57 lines
1.2 KiB
React
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import {connect} from 'react-redux';
|
|
|
|
import {
|
|
filterInlineAlerts
|
|
} from '../reducers/alerts';
|
|
|
|
import InlineMessageComponent from '../components/alerts/inline-message.jsx';
|
|
|
|
const InlineMessages = ({
|
|
alertsList,
|
|
className
|
|
}) => {
|
|
if (!alertsList) {
|
|
return null;
|
|
}
|
|
// only display inline alerts here
|
|
const inlineAlerts = filterInlineAlerts(alertsList);
|
|
if (!inlineAlerts || !inlineAlerts.length) {
|
|
return null;
|
|
}
|
|
|
|
// get first alert
|
|
const firstInlineAlert = inlineAlerts[0];
|
|
const {
|
|
content,
|
|
iconSpinner,
|
|
level
|
|
} = firstInlineAlert;
|
|
|
|
return (
|
|
<InlineMessageComponent
|
|
className={className}
|
|
content={content}
|
|
iconSpinner={iconSpinner}
|
|
level={level}
|
|
/>
|
|
);
|
|
};
|
|
|
|
InlineMessages.propTypes = {
|
|
alertsList: PropTypes.arrayOf(PropTypes.object),
|
|
className: PropTypes.string
|
|
};
|
|
|
|
const mapStateToProps = state => ({
|
|
alertsList: state.scratchGui.alerts.alertsList
|
|
});
|
|
|
|
const mapDispatchToProps = () => ({});
|
|
|
|
export default connect(
|
|
mapStateToProps,
|
|
mapDispatchToProps
|
|
)(InlineMessages);
|