Merge pull request #3856 from cwillisf/day1-student-country-default

default student's country to educator's during reg
This commit is contained in:
Chris Willis-Ford 2020-05-13 11:11:18 -07:00 committed by GitHub
commit 1bab2bb59a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View file

@ -453,7 +453,7 @@ class DemographicsStep extends React.Component {
handleChooseGender (name, gender) { handleChooseGender (name, gender) {
this.setState({otherDisabled: gender !== 'other'}); this.setState({otherDisabled: gender !== 'other'});
} }
// look up country name using user's country code selection // look up country name using user's country code selection ('us' -> 'United States')
getCountryName (values) { getCountryName (values) {
if (values.countryCode) { if (values.countryCode) {
const countryInfo = countryData.lookupCountryInfo(values.countryCode); const countryInfo = countryData.lookupCountryInfo(values.countryCode);
@ -463,6 +463,12 @@ class DemographicsStep extends React.Component {
} }
return null; return null;
} }
// look up country code from country label ('United States' -> 'us')
// if `countryName` is not found, including if it's null or undefined, then this function will return undefined.
getCountryCode (countryName) {
const country = countryData.countryInfo.find(countryItem => countryItem.name === countryName);
return country && country.code;
}
handleValidSubmit (formData) { handleValidSubmit (formData) {
const countryName = this.getCountryName(formData); const countryName = this.getCountryName(formData);
if (countryName && formData.user) { if (countryName && formData.user) {
@ -573,7 +579,7 @@ class DemographicsStep extends React.Component {
validations={{ validations={{
countryVal: values => this.countryValidator(values) countryVal: values => this.countryValidator(values)
}} }}
value={countryOptions[0].value} value={this.getCountryCode(this.props.countryName) || countryOptions[0].value}
/> />
<Checkbox <Checkbox
className="demographics-checkbox-is-robot" className="demographics-checkbox-is-robot"
@ -598,6 +604,7 @@ class DemographicsStep extends React.Component {
DemographicsStep.propTypes = { DemographicsStep.propTypes = {
activeStep: PropTypes.number, activeStep: PropTypes.number,
birthOffset: PropTypes.number, birthOffset: PropTypes.number,
countryName: PropTypes.string, // like 'United States', not 'US' or 'United States of America'
description: PropTypes.string, description: PropTypes.string,
intl: intlShape, intl: intlShape,
onNextStep: PropTypes.func, onNextStep: PropTypes.func,

View file

@ -132,6 +132,8 @@ class StudentRegistration extends React.Component {
onNextStep={this.handleAdvanceStep} onNextStep={this.handleAdvanceStep}
/> />
<Steps.DemographicsStep <Steps.DemographicsStep
countryName={this.state.classroom && this.state.classroom.educator &&
this.state.classroom.educator.profile && this.state.classroom.educator.profile.country}
description={this.props.intl.formatMessage({ description={this.props.intl.formatMessage({
id: 'registration.studentPersonalStepDescription' id: 'registration.studentPersonalStepDescription'
})} })}