"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMultiStateValidator = void 0; var react_1 = require("react"); function useMultiStateValidator(states, validator, initialValidity) { if (initialValidity === void 0) { initialValidity = [undefined]; } if (typeof states !== 'object') { throw new Error('states expected to be an object or array, got ' + typeof states); } var validatorInner = react_1.useRef(validator); var statesInner = react_1.useRef(states); validatorInner.current = validator; statesInner.current = states; var _a = react_1.useState(initialValidity), validity = _a[0], setValidity = _a[1]; var validate = react_1.useCallback(function () { if (validatorInner.current.length >= 2) { validatorInner.current(statesInner.current, setValidity); } else { setValidity(validatorInner.current(statesInner.current)); } }, [setValidity]); react_1.useEffect(function () { validate(); }, Object.values(states)); return [validity, validate]; } exports.useMultiStateValidator = useMultiStateValidator;