react-admin-ui
Version:
React Admin Panel based on material-ui interface Edit
38 lines (32 loc) • 1.42 kB
JSX
import React from 'react'
import {Field, FieldArray} from 'redux-form'
import {getFormFields} from '../../../../lib'
import {showField} from '../../../../utils'
import {ItemWrapper, StyledLabel, ContentWrapper} from '../..'
export default ({fields})=>
<ContentWrapper>
<div className='row'>
{fields.map(({fieldType = 'field', column = 12, style = {width: '100%'}, ...item}, key)=> {
let {component = 'material.TextField'} = item
if (typeof (component) == 'string') {
let widget = showField(component, getFormFields())
if (widget) {
item = {...item, component: widget, id: `__${item.name}`}
}
}
return (
<div className={`col-${column}`} key={key}>
<StyledLabel>{item.title}</StyledLabel>
{fieldType == 'field' &&
<ItemWrapper>
<Field {...item} id={`__${item.name}`} style={style}/>
</ItemWrapper>}
{fieldType == 'array' &&
<div>
<FieldArray {...item} id={`__${item.name}`} style={style}/>
</div>}
</div>
)
})}
</div>
</ContentWrapper>