UNPKG

@mantine/form

Version:

Mantine form management library

42 lines (41 loc) 1.46 kB
"use client"; require("../../_virtual/_rolldown/runtime.cjs"); const require_filter_errors = require("./filter-errors/filter-errors.cjs"); let react = require("react"); //#region packages/@mantine/form/src/hooks/use-form-errors/use-form-errors.ts function useFormErrors(initialErrors) { const [errorsState, setErrorsState] = (0, react.useState)(require_filter_errors.filterErrors(initialErrors)); const errorsRef = (0, react.useRef)(errorsState); const setErrors = (0, react.useCallback)((errors) => { setErrorsState((current) => { const newErrors = require_filter_errors.filterErrors(typeof errors === "function" ? errors(current) : errors); errorsRef.current = newErrors; return newErrors; }); }, []); const clearErrors = (0, react.useCallback)(() => setErrors({}), []); const clearFieldError = (0, react.useCallback)((path) => { if (errorsRef.current[path] === void 0) return; setErrors((current) => { const errors = { ...current }; delete errors[path]; return errors; }); }, [errorsState]); return { errorsState, setErrors, clearErrors, setFieldError: (0, react.useCallback)((path, error) => { if (error == null || error === false) clearFieldError(path); else if (errorsRef.current[path] !== error) setErrors((current) => ({ ...current, [path]: error })); }, [errorsState]), clearFieldError }; } //#endregion exports.useFormErrors = useFormErrors; //# sourceMappingURL=use-form-errors.cjs.map