UNPKG

uniforms-unstyled

Version:

Unstyled components for uniforms.

47 lines (41 loc) 1.29 kB
import React from 'react'; import connectField from 'uniforms/connectField'; import filterDOMProps from 'uniforms/filterDOMProps'; import joinName from 'uniforms/joinName'; import {Children} from 'react'; import ListAddField from './ListAddField'; import ListItemField from './ListItemField'; const List = ({ children, initialCount, itemProps, label, name, value, ...props }) => <ul {...filterDOMProps(props)}> {label && ( <label> {label} <ListAddField name={`${name}.$`} initialCount={initialCount} /> </label> )} {children ? ( value.map((item, index) => Children.map(children, child => React.cloneElement(child, { key: index, label: null, name: joinName(name, child.props.name && child.props.name.replace('$', index)) }) ) ) ) : ( value.map((item, index) => <ListItemField key={index} label={null} name={joinName(name, index)} {...itemProps} /> ) )} </ul> ; export default connectField(List, {includeInChain: false});