public/components/Pillar/Create.react.js (53 lines of code) (raw):

import React from 'react'; import PillarEdit from '../Pillar/PillarEdit.react'; import SaveButton from '../utils/SaveButton.react'; class PillarCreate extends React.Component { constructor(props) { super(props); this.isPillarDirty = this.isPillarDirty.bind(this); this.state = { pathInUse: false }; } componentDidMount() { this.props.pillarActions.populateEmptyPillar(); } isPillarDirty() { return this.props.saveState === 'SAVE_STATE_DIRTY'; } resetPillar() { this.props.pillarActions.populateEmptyPillar(); } savePillar() { this.props.pillarActions.createPillar(this.props.pillar); } render () { return ( <div className="pillar-edit"> <div className="pillar-edit__column--sidebar"> <PillarEdit pillar={this.props.pillar} updatePillar={this.props.pillarActions.updatePillar}/> </div> <div className="pillar-edit__column"></div> <div className="pillar-edit__column"></div> <SaveButton isHidden={!this.isPillarDirty()} onSaveClick={this.savePillar.bind(this)} onResetClick={this.resetPillar.bind(this)}/> </div> ); } } //REDUX CONNECTIONS import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as createPillar from '../../actions/PillarsActions/createPillar'; import * as updatePillar from '../../actions/PillarsActions/updatePillar'; function mapStateToProps(state) { return { config: state.config, saveState: state.saveState, pillar: state.pillar }; } function mapDispatchToProps(dispatch) { return { pillarActions: bindActionCreators(Object.assign({}, createPillar, updatePillar), dispatch) }; } export default connect(mapStateToProps, mapDispatchToProps)(PillarCreate);