React validatable form hook that is used to create dynamic client side validations on react forms
React Validatable Form
React validatable form hook that is used to create dynamic client side validations on React forms.
Install
react-validatable-form requires:
- React 17.0.2 or later
yarn add react-validatable-form
or
npm install --save react-validatable-form
Getting Started
Setup ReactValidatableFormProvider
Wrap your App inside ReactValidatableFormProvider
.
import { ReactValidatableFormProvider } from 'react-validatable-form';
// Wrap your app inside ReactValidatableFormProvider
const App = () => {
return (
<ReactValidatableFormProvider
lang={'en'}
customRules={null}
translations={null}
hideBeforeSubmit={true}
showAfterBlur={true}
focusToErrorAfterSubmit={true}
elementFocusHandler={null}
>
<Main />
</ReactValidatableFormProvider>
);
};
useValidatableForm Hook Usage
import { useValidatableForm } from 'react-validatable-form';
import get from 'lodash.get';
const initialFormData = {};
const rules = [{ path: 'val', ruleSet: [{ rule: 'required' }] }];
const MyComponent = () => {
const [isValid, validationError, formData,
{ setPathValue, setFormIsSubmitted, setPathIsBlurred }] =
useValidatableForm({
rules,
initialFormData,
});
return <>
<input
type="text"
value={get(formData, 'val') || ''}
onChange={(e) => setPathValue('val', e.target.value)}
onBlur={() => setPathIsBlurred('val')}
id="val"
/>
<div className="errorText">{get(validationError, 'val') || ' '}</div>
<div>
<button onClick={() => setFormIsSubmitted()}>
Submit Form
</button>
</div>
</>;
};
Examples
Checkout live examples on react-validatable-form-demo page for various customizations.
Contributing
Please review the contributing guide before contributing to the repository.
License
MIT