diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index 2317fb2b9..eaadf12e7 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -220,6 +220,37 @@ export interface FormValidators< onDynamicAsyncDebounceMs?: number } +export interface FormListenerFieldProps< + TFormData, + TOnMount extends undefined | FormValidateOrFn, + TOnChange extends undefined | FormValidateOrFn, + TOnChangeAsync extends undefined | FormAsyncValidateOrFn, + TOnBlur extends undefined | FormValidateOrFn, + TOnBlurAsync extends undefined | FormAsyncValidateOrFn, + TOnSubmit extends undefined | FormValidateOrFn, + TOnSubmitAsync extends undefined | FormAsyncValidateOrFn, + TOnDynamic extends undefined | FormValidateOrFn, + TOnDynamicAsync extends undefined | FormAsyncValidateOrFn, + TOnServer extends undefined | FormAsyncValidateOrFn, + TSubmitMeta = never, +> { + formApi: FormApi< + TFormData, + TOnMount, + TOnChange, + TOnChangeAsync, + TOnBlur, + TOnBlurAsync, + TOnSubmit, + TOnSubmitAsync, + TOnDynamic, + TOnDynamicAsync, + TOnServer, + TSubmitMeta + > + fieldApi: AnyFieldApi +} + export interface FormListeners< TFormData, TOnMount extends undefined | FormValidateOrFn, @@ -234,8 +265,8 @@ export interface FormListeners< TOnServer extends undefined | FormAsyncValidateOrFn, TSubmitMeta = never, > { - onChange?: (props: { - formApi: FormApi< + onChange?: ( + props: FormListenerFieldProps< TFormData, TOnMount, TOnChange, @@ -248,13 +279,12 @@ export interface FormListeners< TOnDynamicAsync, TOnServer, TSubmitMeta - > - fieldApi: AnyFieldApi - }) => void + >, + ) => void onChangeDebounceMs?: number - onBlur?: (props: { - formApi: FormApi< + onBlur?: ( + props: FormListenerFieldProps< TFormData, TOnMount, TOnChange, @@ -267,9 +297,8 @@ export interface FormListeners< TOnDynamicAsync, TOnServer, TSubmitMeta - > - fieldApi: AnyFieldApi - }) => void + >, + ) => void onBlurDebounceMs?: number onMount?: (props: { @@ -307,8 +336,8 @@ export interface FormListeners< meta: TSubmitMeta }) => void - onFieldUnmount?: (props: { - formApi: FormApi< + onFieldUnmount?: ( + props: FormListenerFieldProps< TFormData, TOnMount, TOnChange, @@ -321,9 +350,8 @@ export interface FormListeners< TOnDynamicAsync, TOnServer, TSubmitMeta - > - fieldApi: AnyFieldApi - }) => void + >, + ) => void } /**