UNPKG

@olapat/react-useform

Version:
37 lines (36 loc) 1.8 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var useForm_1 = __importDefault(require("../useForm/useForm")); var useList_1 = __importDefault(require("./useList")); var useCheckValidate_1 = __importDefault(require("../useForm/useCheckValidate")); var react_1 = require("react"); var useFormList = function (config, configList) { var form = (0, useForm_1.default)(config); var listCtl = (0, useList_1.default)(configList); var checkValidate = (0, useCheckValidate_1.default)(); var onChange = (0, react_1.useCallback)(function (ix, name, value, rules) { var _a; var arrayList = listCtl.values.map(function (_, i) { return i; }); var prevItem = listCtl.values[arrayList[ix]]; var values = __assign(__assign({}, prevItem.values), (_a = {}, _a[name] = value, _a)); var _rules = rules || prevItem.rules; var newItem = __assign(__assign({}, prevItem), { values: values, rules: _rules, errors: form.submitted ? checkValidate(values, _rules) : {} }); listCtl.changeListItem(ix, newItem); }, [listCtl, form.submitted, checkValidate]); return __assign(__assign({}, form), { listCtl: __assign(__assign({}, listCtl), { onChange: onChange }) }); }; exports.default = useFormList;