UNPKG

@financial-times/n-conversion-forms

Version:

Containing jsx components and styles for forms included on Accounts and Acqusition apps (next-signup, next-profile, next-retention, etc).

67 lines (61 loc) 1.56 kB
import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; export function EducationJobTitle({ value = '', isDisabled = false, hasError = false, fieldId = 'jobTitleField', inputId = 'jobTitle', inputName = 'jobTitle', isUSContract = false, }) { const inputWrapperClassName = classNames([ 'o-forms-input', 'o-forms-input--select', { 'o-forms-input--invalid': hasError }, ]); const availableJobTitles = ['Faculty/Other'].concat( isUSContract ? ['Graduate Student', 'Undergraduate Student'] : ['Student'] ); return ( <label id={fieldId} className="o-forms-field" data-validate="required" htmlFor={inputId} > <span className="o-forms-title"> <span className="o-forms-title__main">Occupation</span> </span> <span className={inputWrapperClassName}> <select id={inputId} name={inputName} data-trackable="job-title" aria-required="true" required disabled={isDisabled} defaultValue={value} > <option value="">Select your occupation</option> {availableJobTitles.map((jobTitle, index) => { return <option key={index}>{jobTitle}</option>; })} </select> <span className="o-forms-input__error"> Please enter your occupation. </span> </span> </label> ); } EducationJobTitle.propTypes = { value: PropTypes.string, isDisabled: PropTypes.bool, hasError: PropTypes.bool, fieldId: PropTypes.string, inputId: PropTypes.string, inputName: PropTypes.string, isUSContract: PropTypes.bool, };