isReady && setValue('test', 'data'), [isReady])`}/> |
+| Name | Type | Description |
+| -------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `isDirty` | boolean | Set to `true` after the user modifies any of the inputs.
- **Important:** make sure to provide all inputs' `defaultValues` at the `useForm`, so hook form can have a single source of truth to compare whether the form is dirty.
- File typed input will need to be managed at the app level due to the ability to cancel file selection and [FileList](https://developer.mozilla.org/en-US/docs/Web/API/FileList) object.
- Do not support custom object, Class or File object.
|
+| `dirtyFields` | object | An object with the user-modified fields. Make sure to provide all inputs' `defaultValues` via `useForm`, so the library can compare against the `defaultValues.`- **Important:** make sure to provide `defaultValues` at the `useForm`, so hook form can have a single source of truth to compare each field's dirtiness.
- Dirty fields will **not** represent as `isDirty` `formState`, because dirty fields are marked field dirty at field level rather the entire form. If you want to determine the entire form state use `isDirty` instead.
|
+| `touchedFields` | object | An object containing all the inputs the user has interacted with. |
+| `defaultValues` | object | The value which has been set at [useForm](/docs/useform)'s `defaultValues` or updated `defaultValues` via [reset](/docs/useform/reset) API. |
+| `isSubmitted` | boolean | Set to `true` after the form is submitted. Will remain `true` until the `reset` method is invoked. |
+| `isSubmitSuccessful` | boolean | Indicate the form was successfully submitted without any runtime error. |
+| `isSubmitting` | boolean | `true` if the form is currently being submitted. `false` otherwise. |
+| `isLoading` | boolean | `true` if the form is currently loading async default values.- **Important:** this prop is only applicable to async `defaultValues` await fetch('/api')\n})`}/>
|
+| `submitCount` | number | Number of times the form was submitted. |
+| `isValid` | boolean | Set to `true` if the form doesn't have any errors.- `setError` has no effect on `isValid` `formState`, `isValid` will always derived via the entire form validation result.
|
+| `isValidating` | boolean | Set to `true` during validation. |
+| `validatingFields` | object | Capture fields which are getting async validation. |
+| `errors` | object | An object with field errors. There is also an [ErrorMessage](/docs/useformstate/errormessage) component to retrieve error message easily. |
+| `disabled` | boolean | Set to true if the form is disabled via the disabled prop in [useForm](/docs/useform). |
+| `isReady` | boolean | Set to true when `formState` subscription setup is ready. isReady && setValue('test', 'data'), [isReady])`}/> |
diff --git a/src/content/docs/usewatch.mdx b/src/content/docs/usewatch.mdx
index 679102693..d613afc9c 100644
--- a/src/content/docs/usewatch.mdx
+++ b/src/content/docs/usewatch.mdx
@@ -12,13 +12,14 @@ Behaves similarly to the `watch` API, however, this will isolate re-rendering at
---
-| Name | Type | Description |
-| -------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `name` | string \| string[] \| undefined | Name of the field. |
-| `control` | Object | [`control`](/docs/useform/control) object provided by `useForm`. It's optional if you are using `FormProvider`. |
-| `defaultValue` | unknown | default value for `useWatch` to return before the initial render.
**Note:** the first render will always return `defaultValue` when it's supplied. |
-| `disabled` | boolean = false | Option to disable the subscription. |
-| `exact` | boolean = false | This prop will enable an exact match for input name subscriptions. |
+| Name | Type | Description |
+| -------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `name` | string \| string[] \| undefined | Name of the field. |
+| `control` | Object | [`control`](/docs/useform/control) object provided by `useForm`. It's optional if you are using `FormProvider`. |
+| `compute` | function | Subscribe to selective and computed form values.
- Subscribe to the entire form but only return updated value with certain condition { \n if (data.test?.length) return data.test; \n\n return ''; \n }, \n});`}/>
- Subscribe to a specific form value state { \n return data.length ? data : ''; \n }, \n});`}/>
|
+| `defaultValue` | unknown | default value for `useWatch` to return before the initial render.
**Note:** the first render will always return `defaultValue` when it's supplied. |
+| `disabled` | boolean = false | Option to disable the subscription. |
+| `exact` | boolean = false | This prop will enable an exact match for input name subscriptions. |
### Return