UNPKG

@shopify/react-form

Version:

Manage react forms tersely and safely-typed with no magic using React hooks.

45 lines (44 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = require("react"); var utilities_1 = require("../utilities"); function useValidateAll(fieldBag) { return react_1.useCallback(function () { var e_1, _a; var fields = Object.values(fieldBag); var errors = []; function validate(field) { var message = field.runValidation(); if (message) { errors.push({ message: message }); } } function validateDictionary(fields) { Object.values(fields).forEach(validate); } try { for (var fields_1 = tslib_1.__values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) { var item = fields_1_1.value; if (utilities_1.isField(item)) { validate(item); } else if (Array.isArray(item)) { item.map(validateDictionary); } else { validateDictionary(item); } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1); } finally { if (e_1) throw e_1.error; } } return errors; }, [fieldBag]); } exports.useValidateAll = useValidateAll;