UNPKG

uniforms-unstyled

Version:
24 lines (23 loc) 1.05 kB
import { __rest } from "tslib"; import cloneDeep from 'lodash/cloneDeep'; import React from 'react'; import { connectField, filterDOMProps, joinName, useField, } from 'uniforms'; function ListAdd(_a) { var { disabled, name, readOnly, value } = _a, props = __rest(_a, ["disabled", "name", "readOnly", "value"]); const nameParts = joinName(null, name); const parentName = joinName(nameParts.slice(0, -1)); const parent = useField(parentName, {}, { absoluteName: true })[0]; const limitNotReached = !disabled && !(parent.maxCount <= parent.value.length); function onAction(event) { if (limitNotReached && !readOnly && (!('key' in event) || event.key === 'Enter')) { parent.onChange(parent.value.concat([cloneDeep(value)])); } } return (React.createElement("span", Object.assign({}, filterDOMProps(props), { onClick: onAction, onKeyDown: onAction, role: "button", tabIndex: 0 }), "+")); } export default connectField(ListAdd, { initialValue: false, kind: 'leaf', });