Skip to content

Commit b8476c1

Browse files
fix(core): fix formOptions type inferance (#1687)
Co-authored-by: LeCarbonator <[email protected]>
1 parent 090d2ef commit b8476c1

File tree

4 files changed

+305
-31
lines changed

4 files changed

+305
-31
lines changed

packages/form-core/src/FormApi.ts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ type FormErrorMapFromValidator<
5757
TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
5858
TOnSubmit extends undefined | FormValidateOrFn<TFormData>,
5959
TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
60+
TOnDynamic extends undefined | FormValidateOrFn<TFormData>,
61+
TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
6062
> = Partial<
6163
Record<
6264
DeepKeys<TFormData>,
@@ -67,7 +69,9 @@ type FormErrorMapFromValidator<
6769
TOnBlur,
6870
TOnBlurAsync,
6971
TOnSubmit,
70-
TOnSubmitAsync
72+
TOnSubmitAsync,
73+
TOnDynamic,
74+
TOnDynamicAsync
7175
>
7276
>
7377
>
@@ -1491,7 +1495,9 @@ export class FormApi<
14911495
TOnBlur,
14921496
TOnBlurAsync,
14931497
TOnSubmit,
1494-
TOnSubmitAsync
1498+
TOnSubmitAsync,
1499+
TOnDynamic,
1500+
TOnDynamicAsync
14951501
>
14961502
} => {
14971503
const validates = getSyncValidatorArray(cause, {
@@ -1511,7 +1517,9 @@ export class FormApi<
15111517
TOnBlur,
15121518
TOnBlurAsync,
15131519
TOnSubmit,
1514-
TOnSubmitAsync
1520+
TOnSubmitAsync,
1521+
TOnDynamic,
1522+
TOnDynamicAsync
15151523
> = {}
15161524

15171525
batch(() => {
@@ -1654,7 +1662,9 @@ export class FormApi<
16541662
TOnBlur,
16551663
TOnBlurAsync,
16561664
TOnSubmit,
1657-
TOnSubmitAsync
1665+
TOnSubmitAsync,
1666+
TOnDynamic,
1667+
TOnDynamicAsync
16581668
>
16591669
> => {
16601670
const validates = getAsyncValidatorArray(cause, {
@@ -1801,7 +1811,9 @@ export class FormApi<
18011811
TOnBlur,
18021812
TOnBlurAsync,
18031813
TOnSubmit,
1804-
TOnSubmitAsync
1814+
TOnSubmitAsync,
1815+
TOnDynamic,
1816+
TOnDynamicAsync
18051817
> = {}
18061818
if (promises.length) {
18071819
results = await Promise.all(promises)
@@ -1846,7 +1858,9 @@ export class FormApi<
18461858
TOnBlur,
18471859
TOnBlurAsync,
18481860
TOnSubmit,
1849-
TOnSubmitAsync
1861+
TOnSubmitAsync,
1862+
TOnDynamic,
1863+
TOnDynamicAsync
18501864
>
18511865
| Promise<
18521866
FormErrorMapFromValidator<
@@ -1857,7 +1871,9 @@ export class FormApi<
18571871
TOnBlur,
18581872
TOnBlurAsync,
18591873
TOnSubmit,
1860-
TOnSubmitAsync
1874+
TOnSubmitAsync,
1875+
TOnDynamic,
1876+
TOnDynamicAsync
18611877
>
18621878
> => {
18631879
// Attempt to sync validate first

packages/form-core/src/formOptions.ts

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,35 +24,45 @@ export function formOptions<
2424
TOptions extends Partial<
2525
FormOptions<
2626
TFormData,
27-
undefined | FormValidateOrFn<TFormData>,
28-
undefined | FormValidateOrFn<TFormData>,
29-
undefined | FormAsyncValidateOrFn<TFormData>,
30-
undefined | FormValidateOrFn<TFormData>,
31-
undefined | FormAsyncValidateOrFn<TFormData>,
32-
undefined | FormValidateOrFn<TFormData>,
33-
undefined | FormAsyncValidateOrFn<TFormData>,
34-
undefined | FormValidateOrFn<TFormData>,
35-
undefined | FormAsyncValidateOrFn<TFormData>,
36-
undefined | FormAsyncValidateOrFn<TFormData>,
27+
TOnMount,
28+
TOnChange,
29+
TOnChangeAsync,
30+
TOnBlur,
31+
TOnBlurAsync,
32+
TOnSubmit,
33+
TOnSubmitAsync,
34+
TOnDynamic,
35+
TOnDynamicAsync,
36+
TOnServer,
3737
TSubmitMeta
3838
>
3939
>,
40-
TFormData = TOptions['defaultValues'],
41-
TSubmitMeta = TOptions['onSubmitMeta'],
40+
TFormData,
41+
TOnMount extends undefined | FormValidateOrFn<TFormData>,
42+
TOnChange extends undefined | FormValidateOrFn<TFormData>,
43+
TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
44+
TOnBlur extends undefined | FormValidateOrFn<TFormData>,
45+
TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
46+
TOnSubmit extends undefined | FormValidateOrFn<TFormData>,
47+
TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
48+
TOnDynamic extends undefined | FormValidateOrFn<TFormData>,
49+
TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
50+
TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,
51+
TSubmitMeta = never,
4252
>(
4353
defaultOpts: Partial<
4454
FormOptions<
4555
TFormData,
46-
undefined | FormValidateOrFn<TFormData>,
47-
undefined | FormValidateOrFn<TFormData>,
48-
undefined | FormAsyncValidateOrFn<TFormData>,
49-
undefined | FormValidateOrFn<TFormData>,
50-
undefined | FormAsyncValidateOrFn<TFormData>,
51-
undefined | FormValidateOrFn<TFormData>,
52-
undefined | FormAsyncValidateOrFn<TFormData>,
53-
undefined | FormValidateOrFn<TFormData>,
54-
undefined | FormAsyncValidateOrFn<TFormData>,
55-
undefined | FormAsyncValidateOrFn<TFormData>,
56+
TOnMount,
57+
TOnChange,
58+
TOnChangeAsync,
59+
TOnBlur,
60+
TOnBlurAsync,
61+
TOnSubmit,
62+
TOnSubmitAsync,
63+
TOnDynamic,
64+
TOnDynamicAsync,
65+
TOnServer,
5666
TSubmitMeta
5767
>
5868
> &

0 commit comments

Comments
 (0)