UNPKG

admin-on-rest-fr05t1k

Version:

A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI

59 lines (52 loc) 1.83 kB
import React, { Component, PropTypes } from 'react'; import { connect } from 'react-redux'; import RaisedButton from 'material-ui/RaisedButton'; import FlatButton from 'material-ui/FlatButton'; import ContentSave from 'material-ui/svg-icons/content/save'; import CircularProgress from 'material-ui/CircularProgress'; import translate from '../../i18n/translate'; class SaveButton extends Component { handleClick = (e) => { if (this.props.saving) { // prevent double submission e.preventDefault(); } } render() { const { saving, label = 'aor.action.save', raised = true, translate } = this.props; return raised ? <RaisedButton type="submit" label={label && translate(label)} icon={saving ? <CircularProgress size={25} thickness={2} /> : <ContentSave />} onClick={this.handleClick} primary={!saving} style={{ margin: '10px 24px', position: 'relative', }} /> : <FlatButton type="submit" label={label && translate(label)} icon={saving ? <CircularProgress size={25} thickness={2} /> : <ContentSave />} onClick={this.handleClick} primary={!saving} style={{ margin: '10px 24px', position: 'relative', }} /> ; } } SaveButton.propTypes = { label: PropTypes.string, raised: PropTypes.bool, saving: PropTypes.bool, translate: PropTypes.func.isRequired, }; const mapStateToProps = state => ({ saving: state.admin.saving, }); export default connect(mapStateToProps)(translate(SaveButton));