UNPKG

fluent-vuelidate

Version:

A fluent, typescript-first validation library for Vue3

38 lines (37 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFieldStateController = void 0; const vue_1 = require("vue"); const setAllFieldsToUntouchedState = (instance, fieldStates) => { Object.keys(instance).forEach((field) => { fieldStates[field] = { isUntouched: true, isValid: false, errors: [], notValid: false, }; }); }; const areAllFieldsValid = (fieldStates) => { return Object.values(fieldStates).every((field) => field.isValid === true); }; const hasUntouchedFields = (fieldStates) => { return Object.values(fieldStates).some((field) => field.isUntouched === true); }; const set = (field, validity, fieldStates) => { fieldStates[field] = validity; }; const useFieldStateController = (instance) => { const reffieldStates = (0, vue_1.ref)({}); const fieldStates = reffieldStates.value; setAllFieldsToUntouchedState(instance, fieldStates); const controller = {}; controller.areAllFieldsValid = () => areAllFieldsValid(fieldStates); controller.hasUntouchedFields = () => hasUntouchedFields(fieldStates); controller.set = (field, validity) => set(field, validity, fieldStates); return { fieldStateController: (0, vue_1.ref)(controller).value, fieldStates, }; }; exports.useFieldStateController = useFieldStateController;