public/components/utils/SaveButton.react.js (42 lines of code) (raw):
import React from 'react';
import CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';
import {saveState} from "../../reducers/rootReducer"
import ProgressSpinner from "../utils/ProgressSpinner.react"
export default class SaveButton extends React.Component {
constructor(props) {
super(props);
}
renderSaveStateIndicator() {
if (this.props.saveState == saveState.inprogress) {
return (
<div className="save__button--indicator">
<ProgressSpinner />
</div>
);
}
return false;
}
renderButtons() {
if (this.props.isHidden) {
return false;
}
return (
<div className="save">
<div className="save__button clickable-icon" onClick={this.props.onSaveClick}>
<i className="i-tick-green"/>Save
</div>
<div className="save__button--reset clickable-icon" onClick={this.props.onResetClick}>
<i className="i-cross-red"/>Cancel
</div>
{this.renderSaveStateIndicator()}
</div>
);
}
render () {
return (
<CSSTransitionGroup transitionName="save-transition" transitionEnterTimeout={500} transitionLeaveTimeout={500}>
{this.renderButtons()}
</CSSTransitionGroup>
);
}
}