react-browser-form
Version:
<div align="center"> <a href="https://deniskabana.github.io/react-browser-form/introduction" title="React Browser Form - Form management in React made simple for browsers."> <img src="https://raw.githubusercontent.com/deniskabana/react-browser-form/
26 lines (20 loc) • 743 B
text/typescript
import { useState } from "react";
import { ErrorManager, ErrorsObject } from "../types";
export function useErrorManager<Schema>(): ErrorManager<Schema> {
const [stateErrors, stateSetErrors] = useState<ErrorsObject<Schema>>({ count: 0, errors: {} });
const generateErrorsObject = (errors: Partial<Record<keyof Schema, string>>): ErrorsObject<Schema> => {
return {
count: Object.keys(errors).length,
errors: errors,
};
};
// RETURNED METHODS
// --------------------------------------------------------------------------------
const setErrors: ErrorManager<Schema>["setErrors"] = errors => {
stateSetErrors(generateErrorsObject(errors));
};
return {
errorData: stateErrors,
setErrors,
};
}