UNPKG

apollo-form

Version:
50 lines (49 loc) 1.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const useField_1 = __importDefault(require("./useField")); const isProd = process.env.NODE_ENV === 'production'; function useFieldArray(props) { const field = useField_1.default({ name: props.name, validate: props.validate, }); if (!Array.isArray(field.value) && isProd) { console.warn(props.name + ' is not array'); } const push = (...args) => { field.setFieldValue([...field.value, ...args]); }; const removeAt = (index) => { const newArr = [...field.value]; newArr.splice(index, 1); field.setFieldValue(newArr); }; const insertAt = (index, ...args) => { const newArr = [...field.value]; newArr.splice(index, 0, ...args); field.setFieldValue(newArr); }; const pop = () => { const newArr = [...field.value]; newArr.pop(); field.setFieldValue(newArr); }; const swap = (index1, index2) => { const newArr = [...field.value]; [newArr[index1], newArr[index2]] = [newArr[index2], newArr[index1]]; field.setFieldValue(newArr); }; const clear = () => { field.setFieldValue([]); }; return Object.assign(Object.assign({}, field), { push, removeAt, insertAt, pop, swap, clear }); } exports.default = useFieldArray;