import React from 'react' import { Helmet } from 'react-helmet' import { connect } from 'react-redux' import FormWithGpx from './ActivityForms/FormWithGpx' import FormWithoutGpx from './ActivityForms/FormWithoutGpx' class ActivityAddEdit extends React.Component { constructor(props, context) { super(props, context) this.state = { withGpx: true, } } handleRadioChange (changeEvent) { this.setState({ withGpx: changeEvent.target.name === 'withGpx' ? changeEvent.target.value : !changeEvent.target.value }) } render() { const { activity, loading, message, sports } = this.props const { withGpx } = this.state return ( <div> <Helmet> <title>FitTrackee - {activity ? 'Edit a workout' : 'Add a workout'} </title> </Helmet> <br /><br /> {message && ( <code>{message}</code> )} <div className="container"> <div className="row"> <div className="col-md-2" /> <div className="col-md-8"> <div className="card add-activity"> <h2 className="card-header text-center"> {activity ? 'Edit a workout' : 'Add a workout'} </h2> <div className="card-body"> {activity ? ( activity.with_gpx ? ( <FormWithGpx activity={activity} sports={sports} /> ) : ( <FormWithoutGpx activity={activity} sports={sports} /> ) ) : ( <div> <form> <div className="form-group row"> <div className="col"> <label className="radioLabel"> <input type="radio" name="withGpx" disabled={loading} checked={withGpx} onChange={event => this.handleRadioChange(event)} /> with gpx file </label> </div> <div className="col"> <label className="radioLabel"> <input type="radio" name="withoutGpx" disabled={loading} checked={!withGpx} onChange={event => this.handleRadioChange(event)} /> without gpx file </label> </div> </div> </form> {withGpx ? ( <FormWithGpx sports={sports} /> ) : ( <FormWithoutGpx sports={sports} /> )} </div> )} </div> </div> </div> <div className="col-md-2" /> </div> </div> </div> ) } } export default connect( state => ({ loading: state.loading }), )(ActivityAddEdit)