trc-client-core
Version:
The core of the TRC Client
88 lines (79 loc) • 3.2 kB
JSX
import React from 'react';
import {reduxForm} from 'redux-form';
// import MarkdownPage from 'react-router-proxy!trc-client-core/src/components/MarkdownPage';
import {submitManagementQualificationRequest} from 'trc-client-core/src/management/ManagementActions';
// import xhr from 'trc-client-core/src/utils/xhr';
import Button from 'bd-stampy/components/Button';
import Label from 'bd-stampy/components/Label';
import Input from 'bd-stampy/components/InputElement';
import Grid from 'trc-client-core/src/components/Grid';
import Col from 'trc-client-core/src/components/Col';
import Loader from 'trc-client-core/src/components/Loader';
import FormError from 'trc-client-core/src/forms/FormError';
import BasicValidation from 'trc-client-core/src/forms/BasicValidation';
import ModalManager from 'trc-client-core/src/Modal/ModalManager';
import ModalConfirm from 'trc-client-core/src/Modal/ModalConfirm';
var ManagementQualificationRequestForm = React.createClass({
displayName: 'ManagementQualificationRequestForm',
propTypes: {
fields: React.PropTypes.object.isRequired,
handleSubmit: React.PropTypes.func.isRequired
},
getInitialState() {
return {
success: false
};
},
onShowModal(data) {
ModalManager.showModal(ModalConfirm, {
title: 'Thank You.',
message: 'Thank you for registering your interest, by clicking confim an email will be sent to Toyota Institute Australia. A representative will be in touch shortly.',
yes: 'Submit',
onYes: this.saveForm.bind(this, data),
no: 'Cancel'
});
},
saveForm(data) {
return this.props.dispatch(submitManagementQualificationRequest(this.props.programCode, data)).then(() => {
this.setState({
success: true
})
});
},
render() {
const {fields: {name, email}, submitting, handleSubmit} = this.props;
if (submitting) {
return <Loader/>
}
if (this.state.success) {
return <div className="InfoBox InfoBox-success row">
Thank you for registering your interest. A representative will be in touch shortly.
</div>
}
return (
<form>
<Grid modifier="tight">
<Col>
<Label>Name</Label>
<Input type="text" {...name} />
<FormError {...name} />
</Col>
<Col>
<Label>Email</Label>
<Input type="email" {...email}/>
<FormError {...email} />
</Col>
<Col width="4">
<Label>{'\xa0'}</Label>
<Button onClick={handleSubmit(this.onShowModal)}>Register your interest</Button>
</Col>
</Grid>
</form>
);
}
});
export default reduxForm({
form: 'managementQualificationRequest',
fields: ['name', 'email'],
validate: BasicValidation
})(ManagementQualificationRequestForm);