all files / src/ createFieldProps.js

100% Statements 26/26
100% Branches 14/14
100% Functions 2/2
100% Lines 5/5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33              56×   56× 56×                                          
import React from 'react'
import createOnBlur from './events/createOnBlur'
import createOnChange from './events/createOnChange'
import createOnDragStart from './events/createOnDragStart'
import createOnDrop from './events/createOnDrop'
import createOnFocus from './events/createOnFocus'
 
const createFieldProps = (getIn, name, { blur, change, focus, initial, state, value }) => {
  const error = state &&
    (getIn(state, 'syncError') || getIn(state, 'asyncError') || getIn(state, 'submitError'))
  const onChange = createOnChange(change)
  return {
    active: state && !!getIn(state, 'active'),
    dirty: value !== initial,
    error: error,
    invalid: !!error,
    name,
    onBlur: createOnBlur(blur),
    onChange,
    onDragStart: createOnDragStart(name, value),
    onDrop: createOnDrop(name, change),
    onFocus: createOnFocus(name, focus),
    onUpdate: onChange,
    pristine: value === initial,
    touched: state && !!getIn(state, 'touched'),
    valid: !error,
    value,
    visited: state && !!getIn(state, 'visited')
  }
}
 
export default createFieldProps