diff --git a/src/components/formik-forms/formik-select.jsx b/src/components/formik-forms/formik-select.jsx
index dcd631012..5ec1bcdf5 100644
--- a/src/components/formik-forms/formik-select.jsx
+++ b/src/components/formik-forms/formik-select.jsx
@@ -24,10 +24,9 @@ const FormikSelect = ({
));
return (
-
+
([
+ {value: 'null', label: intl.formatMessage({id: 'general.month'})},
+ {value: '1', label: intl.formatMessage({id: 'general.monthJanuary'})},
+ {value: '2', label: intl.formatMessage({id: 'general.monthFebruary'})},
+ {value: '3', label: intl.formatMessage({id: 'general.monthMarch'})},
+ {value: '4', label: intl.formatMessage({id: 'general.monthApril'})},
+ {value: '5', label: intl.formatMessage({id: 'general.monthMay'})},
+ {value: '6', label: intl.formatMessage({id: 'general.monthJune'})},
+ {value: '7', label: intl.formatMessage({id: 'general.monthJuly'})},
+ {value: '8', label: intl.formatMessage({id: 'general.monthAugust'})},
+ {value: '9', label: intl.formatMessage({id: 'general.monthSeptember'})},
+ {value: '10', label: intl.formatMessage({id: 'general.monthOctober'})},
+ {value: '11', label: intl.formatMessage({id: 'general.monthNovember'})},
+ {value: '12', label: intl.formatMessage({id: 'general.monthDecember'})}
+]);
+
+const getBirthYearOptions = intl => {
+ const curYearRaw = (new Date()).getYear();
+ const curYear = curYearRaw + 1900;
+ // including both 1900 and current year, there are (curYearRaw + 1) options.
+ const numYearOptions = curYearRaw + 1;
+ const birthYearOptions = Array(numYearOptions).fill()
+ .map((defaultVal, i) => (
+ {value: String(curYear - i), label: String(curYear - i)}
+ ));
+ birthYearOptions.unshift({
+ value: 'null',
+ label: intl.formatMessage({id: 'general.year'})
+ });
+ return birthYearOptions;
+};
+
+class BirthDateStep extends React.Component {
+ constructor (props) {
+ super(props);
+ bindAll(this, [
+ 'handleValidSubmit',
+ 'validateForm',
+ 'validateSelect'
+ ]);
+ }
+ validateSelect (selection) {
+ if (selection === 'null') {
+ return this.props.intl.formatMessage({id: 'form.validationRequired'});
+ }
+ return null;
+ }
+ validateForm () {
+ return {};
+ }
+ handleValidSubmit (formData, formikBag) {
+ formikBag.setSubmitting(false);
+ this.props.onNextStep(formData);
+ }
+ render () {
+ const birthMonthOptions = getBirthMonthOptions(this.props.intl);
+ const birthYearOptions = getBirthYearOptions(this.props.intl);
+ return (
+
+ {props => {
+ const {
+ errors,
+ handleSubmit,
+ isSubmitting
+ } = props;
+ return (
+
+
+
+
+
+
+ );
+ }}
+
+ );
+ }
+}
+
+BirthDateStep.propTypes = {
+ intl: intlShape,
+ onNextStep: PropTypes.func
+};
+
+const IntlBirthDateStep = injectIntl(BirthDateStep);
+
+module.exports = IntlBirthDateStep;
diff --git a/src/components/join-flow/join-flow-step.jsx b/src/components/join-flow/join-flow-step.jsx
index 6ce43ac83..6b1b91fe1 100644
--- a/src/components/join-flow/join-flow-step.jsx
+++ b/src/components/join-flow/join-flow-step.jsx
@@ -10,11 +10,17 @@ require('./join-flow-step.scss');
const JoinFlowStep = ({
children,
description,
+ headerImgSrc,
onSubmit,
title,
waiting
}) => (