Add required fields to job form

This commit is contained in:
Berkeley Martinez
2015-10-11 21:11:27 -07:00
parent e4e87fd1a1
commit 1f16d6f5d9
3 changed files with 16 additions and 6 deletions

View File

@ -58,6 +58,10 @@ function isValidPhone(data) {
return isMobilePhone(data, 'en-US');
}
function makeRequired(validator) {
return (val) => !!val && validator(val);
}
export default contain({
actions: 'jobActions',
store: 'jobsStore',
@ -74,14 +78,14 @@ export default contain({
highlight
} = form;
return {
position: formatValue(position, isAscii),
locale: formatValue(locale, isAscii),
description: formatValue(description, isAscii),
email: formatValue(email, isEmail),
position: formatValue(position, makeRequired(isAscii)),
locale: formatValue(locale, makeRequired(isAscii)),
description: formatValue(description, makeRequired(isAscii)),
email: formatValue(email, makeRequired(isEmail)),
phone: formatValue(phone, isValidPhone),
url: formatValue(url, isValidURL),
logo: formatValue(logo, isValidURL),
name: formatValue(name, isAscii),
name: formatValue(name, makeRequired(isAscii)),
highlight: formatValue(highlight, null, 'bool')
};
},
@ -209,6 +213,7 @@ export default contain({
labelClassName={ labelClass }
onChange={ (e) => handleChange('position', e) }
placeholder='Position'
required={ true }
type='text'
value={ position.value }
wrapperClassName={ inputClass } />
@ -218,6 +223,7 @@ export default contain({
labelClassName={ labelClass }
onChange={ (e) => handleChange('locale', e) }
placeholder='Location'
required={ true }
type='text'
value={ locale.value }
wrapperClassName={ inputClass } />
@ -227,6 +233,7 @@ export default contain({
labelClassName={ labelClass }
onChange={ (e) => handleChange('description', e) }
placeholder='Description'
required={ true }
rows='10'
type='textarea'
value={ description.value }
@ -250,6 +257,7 @@ export default contain({
labelClassName={ labelClass }
onChange={ (e) => handleChange('email', e) }
placeholder='Email'
required={ true }
type='email'
value={ email.value }
wrapperClassName={ inputClass } />

View File

@ -40,6 +40,7 @@ export default React.createClass({
city,
company,
state,
locale,
email,
phone,
postedOn,
@ -57,7 +58,7 @@ export default React.createClass({
<Panel>
Position: { position || 'N/A' }
<br />
Location: { city || '' }, { state || 'N/A' }
Location: { locale ? locale : `${city}, ${state}` }
<br />
Contact: { email || phone || 'N/A' }
<br />

View File

@ -57,6 +57,7 @@ export default Actions({
saveForm: null,
getSavedForm: null,
setForm(form) {
form.locale = form.location;
return { form };
}
})