UNPKG

trc-client-core

Version:
88 lines (79 loc) 3.2 kB
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);