import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import {FormattedMessage} from 'react-intl'; import Box from '../box/box.jsx'; import CloseButton from '../close-button/close-button.jsx'; import Spinner from '../spinner/spinner.jsx'; import {AlertLevels} from '../../lib/alerts/index.jsx'; import styles from './alert.css'; const closeButtonColors = { [AlertLevels.SUCCESS]: CloseButton.COLOR_GREEN, [AlertLevels.WARN]: CloseButton.COLOR_ORANGE }; const AlertComponent = ({ content, closeButton, extensionName, iconSpinner, iconURL, level, showDownload, showSaveNow, onCloseAlert, onDownload, onSaveNow, onReconnect, showReconnect }) => ( {/* TODO: implement Rtl handling */} {(iconSpinner || iconURL) && (
{iconSpinner && ( )} {iconURL && ( )}
)}
{extensionName ? ( ) : content}
{showSaveNow && ( )} {showDownload && ( )} {showReconnect && ( )} {closeButton && ( )}
); AlertComponent.propTypes = { closeButton: PropTypes.bool, content: PropTypes.oneOfType([PropTypes.element, PropTypes.string]), extensionName: PropTypes.string, iconSpinner: PropTypes.bool, iconURL: PropTypes.string, level: PropTypes.string, onCloseAlert: PropTypes.func.isRequired, onDownload: PropTypes.func, onReconnect: PropTypes.func, onSaveNow: PropTypes.func, showDownload: PropTypes.bool, showReconnect: PropTypes.bool, showSaveNow: PropTypes.bool }; AlertComponent.defaultProps = { level: AlertLevels.WARN }; export default AlertComponent;