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
|