useForm

Simple form state and validation.

Usage Example
1import { useForm } from '@danixsoft/hooks';
2
3function ContactForm() {
4  const { values, handleChange, handleSubmit, errors } = useForm({
5    initialValues: { email: '', name: '' },
6    validate: (vals) => {
7      const errs: any = {};
8      if (!vals.email.includes('@')) errs.email = 'Invalid email';
9      if (vals.name.length < 3) errs.name = 'Name too short';
10      return errs;
11    },
12    onSubmit: (vals) => alert(JSON.stringify(vals))
13  });
14
15  return (
16    <form onSubmit={handleSubmit}>
17      <input name="name" value={values.name} onChange={handleChange} />
18      {errors.name && <span>{errors.name}</span>}
19
20      <input name="email" value={values.email} onChange={handleChange} />
21      {errors.email && <span>{errors.email}</span>}
22
23      <button type="submit">Submit</button>
24    </form>
25  );
26}