fix(client): Improve client validation accessibility (#37459)
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
			
		||||
import React, { Fragment, Component } from 'react';
 | 
			
		||||
import PropTypes from 'prop-types';
 | 
			
		||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
 | 
			
		||||
import { faCheck } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import {
 | 
			
		||||
  HelpBlock,
 | 
			
		||||
  FormControl,
 | 
			
		||||
@@ -139,6 +141,18 @@ class InternetSettings extends Component {
 | 
			
		||||
    return null;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  renderHelpBlock = validationMessage =>
 | 
			
		||||
    validationMessage ? <HelpBlock>{validationMessage}</HelpBlock> : null;
 | 
			
		||||
 | 
			
		||||
  renderCheck = (url, validation) =>
 | 
			
		||||
    url && validation === 'success' ? (
 | 
			
		||||
      <FormControl.Feedback>
 | 
			
		||||
        <span>
 | 
			
		||||
          <FontAwesomeIcon icon={faCheck} size='1x' />
 | 
			
		||||
        </span>
 | 
			
		||||
      </FormControl.Feedback>
 | 
			
		||||
    ) : null;
 | 
			
		||||
 | 
			
		||||
  render() {
 | 
			
		||||
    const {
 | 
			
		||||
      formValues: { githubProfile, linkedin, twitter, website }
 | 
			
		||||
@@ -176,12 +190,12 @@ class InternetSettings extends Component {
 | 
			
		||||
              <ControlLabel>GitHub</ControlLabel>
 | 
			
		||||
              <FormControl
 | 
			
		||||
                onChange={this.createHandleChange('githubProfile')}
 | 
			
		||||
                placeholder='https://github.com/user-name'
 | 
			
		||||
                type='url'
 | 
			
		||||
                value={githubProfile}
 | 
			
		||||
              />
 | 
			
		||||
              {githubProfileValidationMessage ? (
 | 
			
		||||
                <HelpBlock>{githubProfileValidationMessage}</HelpBlock>
 | 
			
		||||
              ) : null}
 | 
			
		||||
              {this.renderCheck(githubProfile, githubProfileValidation)}
 | 
			
		||||
              {this.renderHelpBlock(githubProfileValidationMessage)}
 | 
			
		||||
            </FormGroup>
 | 
			
		||||
            <FormGroup
 | 
			
		||||
              controlId='internet-linkedin'
 | 
			
		||||
@@ -190,12 +204,12 @@ class InternetSettings extends Component {
 | 
			
		||||
              <ControlLabel>LinkedIn</ControlLabel>
 | 
			
		||||
              <FormControl
 | 
			
		||||
                onChange={this.createHandleChange('linkedin')}
 | 
			
		||||
                placeholder='https://www.linkedin.com/in/user-name'
 | 
			
		||||
                type='url'
 | 
			
		||||
                value={linkedin}
 | 
			
		||||
              />
 | 
			
		||||
              {linkedinValidationMessage ? (
 | 
			
		||||
                <HelpBlock>{linkedinValidationMessage}</HelpBlock>
 | 
			
		||||
              ) : null}
 | 
			
		||||
              {this.renderCheck(linkedin, linkedinValidation)}
 | 
			
		||||
              {this.renderHelpBlock(linkedinValidationMessage)}
 | 
			
		||||
            </FormGroup>
 | 
			
		||||
            <FormGroup
 | 
			
		||||
              controlId='internet-picture'
 | 
			
		||||
@@ -204,12 +218,12 @@ class InternetSettings extends Component {
 | 
			
		||||
              <ControlLabel>Twitter</ControlLabel>
 | 
			
		||||
              <FormControl
 | 
			
		||||
                onChange={this.createHandleChange('twitter')}
 | 
			
		||||
                placeholder='https://twitter.com/user-name'
 | 
			
		||||
                type='url'
 | 
			
		||||
                value={twitter}
 | 
			
		||||
              />
 | 
			
		||||
              {twitterValidationMessage ? (
 | 
			
		||||
                <HelpBlock>{twitterValidationMessage}</HelpBlock>
 | 
			
		||||
              ) : null}
 | 
			
		||||
              {this.renderCheck(twitter, twitterValidation)}
 | 
			
		||||
              {this.renderHelpBlock(twitterValidationMessage)}
 | 
			
		||||
            </FormGroup>
 | 
			
		||||
            <FormGroup
 | 
			
		||||
              controlId='internet-website'
 | 
			
		||||
@@ -218,12 +232,12 @@ class InternetSettings extends Component {
 | 
			
		||||
              <ControlLabel>Personal Website</ControlLabel>
 | 
			
		||||
              <FormControl
 | 
			
		||||
                onChange={this.createHandleChange('website')}
 | 
			
		||||
                placeholder='https://example.com'
 | 
			
		||||
                type='url'
 | 
			
		||||
                value={website}
 | 
			
		||||
              />
 | 
			
		||||
              {websiteValidationMessage ? (
 | 
			
		||||
                <HelpBlock>{websiteValidationMessage}</HelpBlock>
 | 
			
		||||
              ) : null}
 | 
			
		||||
              {this.renderCheck(website, websiteValidation)}
 | 
			
		||||
              {this.renderHelpBlock(websiteValidationMessage)}
 | 
			
		||||
            </FormGroup>
 | 
			
		||||
            <BlockSaveButton
 | 
			
		||||
              disabled={this.isFormPristine() || !this.isFormValid()}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user