This project simplifies the use of react-hook-form
and Material-UI
. It provides opinionated use cases with following
components:
- FormContainer
- TextFieldElement
- SelectElement
- MultiSelectElement
- RadioButtonGroup
- CheckboxButtonGroup
- CheckboxElement
- PasswordElement
- DatePickerElement
The components are written in TypeScript and attempt an easy integration.
$npm install react-hook-form react-hook-form-mui
The dependency of react-hook-form
is a peerDependency so don't forget to install it as well.
import {FormContainer, TextFieldElement} from 'react-hook-form-mui'
function Form(){
return (
<FormContainer
defaultValues={{name: ''}}
onSuccess={(data) => {console.log(data)}}
>
<TextFieldElement name="name" label="Name" required/>
</FormContainer>
)
}
You can have a look at the example
folder which sets up NextJS with react-hook-form-mui
The <FormContainer />
wires up a form and you can create sub-components which either make use of useFormContext() | useWatch()
to react to form values.
Check out Storybook: Demo
You will find examples and use cases.
If you are using the DatepickerElement
keep in mind that you have to wrap your form with a provider:
Examples for Dayjs or DateFns provider (used in the demo):
This project uses microbundle
to wrap the package for npm
.
- 2.1.x Introduce prop
row
to CheckboxButtonGroup and RadioButtonGroup - 2.x Rename package to react-hook-form-mui
- 1.x Deprecated