message: Hide registration fields that aren't used by any flow
diff: @@ -282,6 +282,18 @@ module.exports = React.createClass({
  });
  },
  + /**
  + * A step is used if any flows include that step.
  + *
  + * @param {string} step A stage name to check
  + * @returns {boolean} Whether it is used
  + */
  + _authStepIsUsed(step) {
  + return this.props.flows.some((flow) => {
  + return flow.stages.includes(step);
  + });
  + },
  +
  render: function() {
  let yourMatrixAccountText = _t('Create your account');
  try {
  @@ -302,11 +314,13 @@ module.exports = React.createClass({
  </a>;
  }
  + let emailSection;
  + if (this._authStepIsUsed('m.login.email.identity')) {
  const emailPlaceholder = this._authStepIsRequired('m.login.email.identity') ?
  _t("Email") :
  _t("Email (optional)");
  - const emailSection = (
  + emailSection = (
  <div>
  <input type="text" ref="email"
  placeholder={emailPlaceholder}
  @@ -316,10 +330,12 @@ module.exports = React.createClass({
  value={this.state.email} />
  </div>
  );
  + }
  + const threePidLogin = !SdkConfig.get().disable_3pid_login;
  const CountryDropdown = sdk.getComponent('views.auth.CountryDropdown');
  let phoneSection;
  - if (!SdkConfig.get().disable_3pid_login) {
  + if (threePidLogin && this._authStepIsUsed('m.login.msisdn')) {
  const phonePlaceholder = this._authStepIsRequired('m.login.msisdn') ?
  _t("Phone") :
  _t("Phone (optional)");
  