import React from "react"; import {Cascader, Col, Input, Row, Select} from 'antd'; import i18next from "i18next"; import * as UserBackend from "../backend/UserBackend"; const { Option } = Select; class AffiliationSelect extends React.Component { constructor(props) { super(props); this.state = { classes: props, addressOptions: [], affiliationOptions: [], }; } componentWillMount() { this.getAddressOptions(this.props.application); this.getAffiliationOptions(this.props.application, this.props.user); } getAddressOptions(application) { if (application.affiliationUrl === "") { return; } const addressUrl = application.affiliationUrl.split("|")[0]; UserBackend.getAddressOptions(addressUrl) .then((addressOptions) => { this.setState({ addressOptions: addressOptions, }); }); } getAffiliationOptions(application, user) { if (application.affiliationUrl === "") { return; } const affiliationUrl = application.affiliationUrl.split("|")[1]; const code = user.address[user.address.length - 1]; UserBackend.getAffiliationOptions(affiliationUrl, code) .then((affiliationOptions) => { this.setState({ affiliationOptions: affiliationOptions, }); }); } updateUserField(key, value) { this.props.onUpdateUserField(key, value); } render() { return ( { this.props.application?.affiliationUrl === "" ? null : ( {i18next.t("user:Address")}: { this.updateUserField('address', value); this.updateUserField('affiliation', ''); this.updateUserField('score', 0); this.getAffiliationOptions(this.props.application, this.props.user); }} placeholder={i18next.t("signup:Please input your address!")} /> ) } {i18next.t("user:Affiliation")}: { this.props.application?.affiliationUrl === "" ? ( { this.updateUserField('affiliation', e.target.value); }} /> ) : ( ) } ) } } export default AffiliationSelect;