import React from 'react'; import bindAll from 'lodash.bindall'; import PropTypes from 'prop-types'; import {connect} from 'react-redux'; import SB3Downloader from './sb3-downloader.jsx'; import AlertComponent from '../components/alerts/alert.jsx'; import {openConnectionModal} from '../reducers/modals'; import {setConnectionModalExtensionId} from '../reducers/connection-modal'; import {manualUpdateProject} from '../reducers/project-state'; class Alert extends React.Component { constructor (props) { super(props); bindAll(this, [ 'handleOnCloseAlert', 'handleOnReconnect' ]); } handleOnCloseAlert () { this.props.onCloseAlert(this.props.index); } handleOnReconnect () { this.props.onOpenConnectionModal(this.props.extensionId); this.handleOnCloseAlert(); } render () { const { closeButton, content, extensionName, index, // eslint-disable-line no-unused-vars level, iconSpinner, iconURL, message, onSaveNow, showDownload, showReconnect, showSaveNow } = this.props; return ( {(_, downloadProject) => ( )} ); } } const mapStateToProps = () => ({}); const mapDispatchToProps = dispatch => ({ onOpenConnectionModal: id => { dispatch(setConnectionModalExtensionId(id)); dispatch(openConnectionModal()); }, onSaveNow: () => { dispatch(manualUpdateProject()); } }); Alert.propTypes = { closeButton: PropTypes.bool, content: PropTypes.element, extensionId: PropTypes.string, extensionName: PropTypes.string, iconSpinner: PropTypes.bool, iconURL: PropTypes.string, index: PropTypes.number, level: PropTypes.string.isRequired, message: PropTypes.string, onCloseAlert: PropTypes.func.isRequired, onOpenConnectionModal: PropTypes.func, onSaveNow: PropTypes.func, showDownload: PropTypes.bool, showReconnect: PropTypes.bool, showSaveNow: PropTypes.bool }; export default connect( mapStateToProps, mapDispatchToProps )(Alert);