UNPKG

react-formal

Version:

Classy HTML form management for React

39 lines (38 loc) 1.52 kB
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import PropTypes from 'prop-types'; import React from 'react'; import useFieldArray from './useFieldArray'; /** * `<FieldArray>`, unlike `<Field>`, does not render any component, and * is essentially a render prop version of [`useFieldArray`](/api/useFieldArray), accepting all * the same options. * * @memberof Form */ function FieldArray(_ref) { let { children } = _ref, props = _objectWithoutPropertiesLoose(_ref, ["children"]); const [values, arrayHelpers, meta] = useFieldArray(props); return /*#__PURE__*/React.createElement(React.Fragment, null, children(values, arrayHelpers, meta)); } FieldArray.displayName = 'FieldArray'; // @ts-ignore FieldArray.propTypes = { name: PropTypes.string.isRequired, /** * The similar signature as providing a function to `<Field>` but with an * additional `arrayHelpers` object passed to the render function: * * ```tsx static * <Form.FieldArray> * {(values, arrayHelpers, meta) => ... } * </Form.FieldArray> * ``` * * @type {(value: T, arrayHelpers: FieldArrayHelpers, meta; FieldMeta) => ReactNode} */ children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]) }; export default FieldArray;