| 154 | * This API encapsulates all the necessary functionalities related to the form. It allows you to manage form state, handle submissions, and interact with form fields |
| 155 | */ |
| 156 | export function useForm< |
| 157 | TFormData, |
| 158 | TOnMount extends undefined | FormValidateOrFn<TFormData>, |
| 159 | TOnChange extends undefined | FormValidateOrFn<TFormData>, |
| 160 | TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 161 | TOnBlur extends undefined | FormValidateOrFn<TFormData>, |
| 162 | TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 163 | TOnSubmit extends undefined | FormValidateOrFn<TFormData>, |
| 164 | TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 165 | TOnDynamic extends undefined | FormValidateOrFn<TFormData>, |
| 166 | TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 167 | TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>, |
| 168 | TSubmitMeta, |
| 169 | >( |
| 170 | opts?: FormOptions< |
| 171 | TFormData, |
| 172 | TOnMount, |
| 173 | TOnChange, |
| 174 | TOnChangeAsync, |
| 175 | TOnBlur, |
| 176 | TOnBlurAsync, |
| 177 | TOnSubmit, |
| 178 | TOnSubmitAsync, |
| 179 | TOnDynamic, |
| 180 | TOnDynamicAsync, |
| 181 | TOnServer, |
| 182 | TSubmitMeta |
| 183 | >, |
| 184 | ) { |
| 185 | const [formApi] = useState(() => { |
| 186 | const api = new FormApi< |
| 187 | TFormData, |
| 188 | TOnMount, |
| 189 | TOnChange, |
| 190 | TOnChangeAsync, |
| 191 | TOnBlur, |
| 192 | TOnBlurAsync, |
| 193 | TOnSubmit, |
| 194 | TOnSubmitAsync, |
| 195 | TOnDynamic, |
| 196 | TOnDynamicAsync, |
| 197 | TOnServer, |
| 198 | TSubmitMeta |
| 199 | >(opts) |
| 200 | |
| 201 | const extendedApi: ReactFormExtendedApi< |
| 202 | TFormData, |
| 203 | TOnMount, |
| 204 | TOnChange, |
| 205 | TOnChangeAsync, |
| 206 | TOnBlur, |
| 207 | TOnBlurAsync, |
| 208 | TOnSubmit, |
| 209 | TOnSubmitAsync, |
| 210 | TOnDynamic, |
| 211 | TOnDynamicAsync, |
| 212 | TOnServer, |
| 213 | TSubmitMeta |