Skip to content

Commit 990a916

Browse files
authored
feat(form-core): field meta and errors are shifted when doing array operations
insert, move, swap, remove
1 parent f139b6b commit 990a916

15 files changed

+649
-62
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ stats.html
4141

4242
vite.config.js.timestamp-*
4343
vite.config.ts.timestamp-*
44+
tsconfig.vitest-temp.json

docs/reference/classes/formapi.md

+29-31
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ title: FormApi
55

66
# Class: FormApi\<TFormData, TFormValidator\>
77

8-
Defined in: [packages/form-core/src/FormApi.ts:361](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L361)
8+
Defined in: [packages/form-core/src/FormApi.ts:362](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L362)
99

1010
A class representing the Form API. It handles the logic and interactions with the form state.
1111

@@ -27,7 +27,7 @@ However, if you need to create a new instance manually, you can do so by calling
2727
new FormApi<TFormData, TFormValidator>(opts?): FormApi<TFormData, TFormValidator>
2828
```
2929
30-
Defined in: [packages/form-core/src/FormApi.ts:390](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L390)
30+
Defined in: [packages/form-core/src/FormApi.ts:391](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L391)
3131
3232
Constructs a new `FormApi` instance with the given form options.
3333
@@ -49,7 +49,7 @@ Constructs a new `FormApi` instance with the given form options.
4949
baseStore: Store<BaseFormState<TFormData>, (cb) => BaseFormState<TFormData>>;
5050
```
5151
52-
Defined in: [packages/form-core/src/FormApi.ts:369](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L369)
52+
Defined in: [packages/form-core/src/FormApi.ts:370](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L370)
5353
5454
***
5555
@@ -59,7 +59,7 @@ Defined in: [packages/form-core/src/FormApi.ts:369](https://github.com/TanStack/
5959
fieldInfo: Record<unknown extends TFormData ? string : TFormData extends readonly any[] & IsTuple<TFormData> ? PrefixTupleAccessor<TFormData<TFormData>, AllowedIndexes<TFormData<TFormData>, never>, []> : TFormData extends any[] ? PrefixArrayAccessor<TFormData<TFormData>, [any]> : TFormData extends Date ? never : TFormData extends object ? PrefixObjectAccessor<TFormData<TFormData>, []> : TFormData extends string | number | bigint | boolean ? "" : never, FieldInfo<TFormData, TFormValidator>>;
6060
```
6161
62-
Defined in: [packages/form-core/src/FormApi.ts:375](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L375)
62+
Defined in: [packages/form-core/src/FormApi.ts:376](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L376)
6363
6464
A record of field information for each field in the form.
6565
@@ -71,7 +71,7 @@ A record of field information for each field in the form.
7171
fieldMetaDerived: Derived<Record<unknown extends TFormData ? string : TFormData extends readonly any[] & IsTuple<TFormData> ? PrefixTupleAccessor<TFormData<TFormData>, AllowedIndexes<TFormData<TFormData>, never>, []> : TFormData extends any[] ? PrefixArrayAccessor<TFormData<TFormData>, [any]> : TFormData extends Date ? never : TFormData extends object ? PrefixObjectAccessor<TFormData<TFormData>, []> : TFormData extends string | number | bigint | boolean ? "" : never, FieldMeta>>;
7272
```
7373
74-
Defined in: [packages/form-core/src/FormApi.ts:370](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L370)
74+
Defined in: [packages/form-core/src/FormApi.ts:371](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L371)
7575
7676
***
7777
@@ -81,7 +81,7 @@ Defined in: [packages/form-core/src/FormApi.ts:370](https://github.com/TanStack/
8181
options: FormOptions<TFormData, TFormValidator> = {};
8282
```
8383
84-
Defined in: [packages/form-core/src/FormApi.ts:368](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L368)
84+
Defined in: [packages/form-core/src/FormApi.ts:369](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L369)
8585
8686
The options for the form.
8787
@@ -93,7 +93,7 @@ The options for the form.
9393
store: Derived<FormState<TFormData>>;
9494
```
9595
96-
Defined in: [packages/form-core/src/FormApi.ts:371](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L371)
96+
Defined in: [packages/form-core/src/FormApi.ts:372](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L372)
9797
9898
## Accessors
9999
@@ -105,7 +105,7 @@ Defined in: [packages/form-core/src/FormApi.ts:371](https://github.com/TanStack/
105105
get state(): FormState<TFormData>
106106
```
107107
108-
Defined in: [packages/form-core/src/FormApi.ts:378](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L378)
108+
Defined in: [packages/form-core/src/FormApi.ts:379](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L379)
109109
110110
##### Returns
111111
@@ -119,7 +119,7 @@ Defined in: [packages/form-core/src/FormApi.ts:378](https://github.com/TanStack/
119119
deleteField<TField>(field): void
120120
```
121121
122-
Defined in: [packages/form-core/src/FormApi.ts:1239](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1239)
122+
Defined in: [packages/form-core/src/FormApi.ts:1240](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1240)
123123
124124
#### Type Parameters
125125
@@ -143,7 +143,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1239](https://github.com/TanStack
143143
getFieldInfo<TField>(field): FieldInfo<TFormData, TFormValidator>
144144
```
145145
146-
Defined in: [packages/form-core/src/FormApi.ts:1148](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1148)
146+
Defined in: [packages/form-core/src/FormApi.ts:1149](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1149)
147147
148148
Gets the field info of the specified field.
149149
@@ -169,7 +169,7 @@ Gets the field info of the specified field.
169169
getFieldMeta<TField>(field): undefined | FieldMeta
170170
```
171171
172-
Defined in: [packages/form-core/src/FormApi.ts:1139](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1139)
172+
Defined in: [packages/form-core/src/FormApi.ts:1140](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1140)
173173
174174
Gets the metadata of the specified field.
175175
@@ -195,7 +195,7 @@ Gets the metadata of the specified field.
195195
getFieldValue<TField>(field): DeepValue<TFormData, TField, IsNullable<TFormData>>
196196
```
197197
198-
Defined in: [packages/form-core/src/FormApi.ts:1132](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1132)
198+
Defined in: [packages/form-core/src/FormApi.ts:1133](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1133)
199199
200200
Gets the value of the specified field.
201201
@@ -221,7 +221,7 @@ Gets the value of the specified field.
221221
handleSubmit(): Promise<void>
222222
```
223223
224-
Defined in: [packages/form-core/src/FormApi.ts:1063](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1063)
224+
Defined in: [packages/form-core/src/FormApi.ts:1064](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1064)
225225
226226
Handles the form submission, performs validation, and calls the appropriate onSubmit or onInvalidSubmit callbacks.
227227
@@ -241,9 +241,7 @@ insertFieldValue<TField>(
241241
opts?): Promise<void>
242242
```
243243
244-
Defined in: [packages/form-core/src/FormApi.ts:1271](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1271)
245-
246-
Inserts a value into an array field at the specified index, shifting the subsequent values to the right.
244+
Defined in: [packages/form-core/src/FormApi.ts:1269](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1269)
247245
248246
#### Type Parameters
249247
@@ -279,7 +277,7 @@ Inserts a value into an array field at the specified index, shifting the subsequ
279277
mount(): () => void
280278
```
281279
282-
Defined in: [packages/form-core/src/FormApi.ts:638](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L638)
280+
Defined in: [packages/form-core/src/FormApi.ts:639](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L639)
283281
284282
#### Returns
285283
@@ -301,7 +299,7 @@ moveFieldValues<TField>(
301299
opts?): void
302300
```
303301
304-
Defined in: [packages/form-core/src/FormApi.ts:1389](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1389)
302+
Defined in: [packages/form-core/src/FormApi.ts:1398](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1398)
305303
306304
Moves the value at the first specified index to the second specified index within an array field.
307305
@@ -342,7 +340,7 @@ pushFieldValue<TField>(
342340
opts?): void
343341
```
344342
345-
Defined in: [packages/form-core/src/FormApi.ts:1253](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1253)
343+
Defined in: [packages/form-core/src/FormApi.ts:1254](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1254)
346344
347345
Pushes a value into an array field.
348346
@@ -379,7 +377,7 @@ removeFieldValue<TField>(
379377
opts?): Promise<void>
380378
```
381379
382-
Defined in: [packages/form-core/src/FormApi.ts:1324](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1324)
380+
Defined in: [packages/form-core/src/FormApi.ts:1327](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1327)
383381
384382
Removes a value from an array field at the specified index.
385383
@@ -417,7 +415,7 @@ replaceFieldValue<TField>(
417415
opts?): Promise<void>
418416
```
419417
420-
Defined in: [packages/form-core/src/FormApi.ts:1298](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1298)
418+
Defined in: [packages/form-core/src/FormApi.ts:1301](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1301)
421419
422420
Replaces a value into an array field at the specified index.
423421
@@ -455,7 +453,7 @@ Replaces a value into an array field at the specified index.
455453
reset(values?, opts?): void
456454
```
457455
458-
Defined in: [packages/form-core/src/FormApi.ts:701](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L701)
456+
Defined in: [packages/form-core/src/FormApi.ts:702](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L702)
459457
460458
Resets the form state to the default values.
461459
If values are provided, the form will be reset to those values instead and the default values will be updated.
@@ -488,7 +486,7 @@ Optional options to control the reset behavior.
488486
resetFieldMeta<TField>(fieldMeta): Record<TField, FieldMeta>
489487
```
490488
491-
Defined in: [packages/form-core/src/FormApi.ts:1185](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1185)
489+
Defined in: [packages/form-core/src/FormApi.ts:1186](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1186)
492490
493491
#### Type Parameters
494492
@@ -512,7 +510,7 @@ Defined in: [packages/form-core/src/FormApi.ts:1185](https://github.com/TanStack
512510
setErrorMap(errorMap): void
513511
```
514512
515-
Defined in: [packages/form-core/src/FormApi.ts:1413](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1413)
513+
Defined in: [packages/form-core/src/FormApi.ts:1425](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1425)
516514
517515
Updates the form's errorMap
518516
@@ -534,7 +532,7 @@ Updates the form's errorMap
534532
setFieldMeta<TField>(field, updater): void
535533
```
536534
537-
Defined in: [packages/form-core/src/FormApi.ts:1167](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1167)
535+
Defined in: [packages/form-core/src/FormApi.ts:1168](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1168)
538536
539537
Updates the metadata of the specified field.
540538
@@ -567,7 +565,7 @@ setFieldValue<TField>(
567565
opts?): void
568566
```
569567
570-
Defined in: [packages/form-core/src/FormApi.ts:1209](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1209)
568+
Defined in: [packages/form-core/src/FormApi.ts:1210](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1210)
571569
572570
Sets the value of the specified field and optionally updates the touched state.
573571
@@ -605,7 +603,7 @@ swapFieldValues<TField>(
605603
opts?): void
606604
```
607605
608-
Defined in: [packages/form-core/src/FormApi.ts:1363](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1363)
606+
Defined in: [packages/form-core/src/FormApi.ts:1369](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L1369)
609607
610608
Swaps the values at the specified indices within an array field.
611609
@@ -643,7 +641,7 @@ Swaps the values at the specified indices within an array field.
643641
update(options?): void
644642
```
645643
646-
Defined in: [packages/form-core/src/FormApi.ts:655](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L655)
644+
Defined in: [packages/form-core/src/FormApi.ts:656](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L656)
647645
648646
Updates the form options and form state.
649647
@@ -665,7 +663,7 @@ Updates the form options and form state.
665663
validateAllFields(cause): Promise<ValidationError[]>
666664
```
667665
668-
Defined in: [packages/form-core/src/FormApi.ts:727](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L727)
666+
Defined in: [packages/form-core/src/FormApi.ts:728](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L728)
669667
670668
Validates all fields using the correct handlers for a given validation cause.
671669
@@ -690,7 +688,7 @@ validateArrayFieldsStartingFrom<TField>(
690688
cause): Promise<ValidationError[]>
691689
```
692690
693-
Defined in: [packages/form-core/src/FormApi.ts:757](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L757)
691+
Defined in: [packages/form-core/src/FormApi.ts:758](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L758)
694692
695693
Validates the children of a specified array in the form starting from a given index until the end using the correct handlers for a given validation type.
696694
@@ -726,7 +724,7 @@ validateField<TField>(field, cause):
726724
| Promise<ValidationError[]>
727725
```
728726
729-
Defined in: [packages/form-core/src/FormApi.ts:796](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L796)
727+
Defined in: [packages/form-core/src/FormApi.ts:797](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L797)
730728
731729
Validates a specified field in the form using the correct handlers for a given validation type.
732730

docs/reference/interfaces/formoptions.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ title: FormOptions
55

66
# Interface: FormOptions\<TFormData, TFormValidator\>
77

8-
Defined in: [packages/form-core/src/FormApi.ts:149](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L149)
8+
Defined in: [packages/form-core/src/FormApi.ts:150](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L150)
99

1010
An object representing the options for a form.
1111

@@ -23,7 +23,7 @@ An object representing the options for a form.
2323
optional asyncAlways: boolean;
2424
```
2525

26-
Defined in: [packages/form-core/src/FormApi.ts:164](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L164)
26+
Defined in: [packages/form-core/src/FormApi.ts:165](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L165)
2727

2828
If true, always run async validation, even when sync validation has produced an error. Defaults to undefined.
2929

@@ -35,7 +35,7 @@ If true, always run async validation, even when sync validation has produced an
3535
optional asyncDebounceMs: number;
3636
```
3737

38-
Defined in: [packages/form-core/src/FormApi.ts:168](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L168)
38+
Defined in: [packages/form-core/src/FormApi.ts:169](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L169)
3939

4040
Optional time in milliseconds if you want to introduce a delay before firing off an async action.
4141

@@ -47,7 +47,7 @@ Optional time in milliseconds if you want to introduce a delay before firing off
4747
optional defaultState: Partial<FormState<TFormData>>;
4848
```
4949

50-
Defined in: [packages/form-core/src/FormApi.ts:160](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L160)
50+
Defined in: [packages/form-core/src/FormApi.ts:161](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L161)
5151

5252
The default state for the form.
5353

@@ -59,7 +59,7 @@ The default state for the form.
5959
optional defaultValues: TFormData;
6060
```
6161

62-
Defined in: [packages/form-core/src/FormApi.ts:156](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L156)
62+
Defined in: [packages/form-core/src/FormApi.ts:157](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L157)
6363

6464
Set initial values for your form.
6565

@@ -71,7 +71,7 @@ Set initial values for your form.
7171
optional onSubmit: (props) => any;
7272
```
7373

74-
Defined in: [packages/form-core/src/FormApi.ts:180](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L180)
74+
Defined in: [packages/form-core/src/FormApi.ts:181](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L181)
7575

7676
A function to be called when the form is submitted, what should happen once the user submits a valid form returns `any` or a promise `Promise<any>`
7777

@@ -99,7 +99,7 @@ A function to be called when the form is submitted, what should happen once the
9999
optional onSubmitInvalid: (props) => void;
100100
```
101101

102-
Defined in: [packages/form-core/src/FormApi.ts:187](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L187)
102+
Defined in: [packages/form-core/src/FormApi.ts:188](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L188)
103103

104104
Specify an action for scenarios where the user tries to submit an invalid form.
105105

@@ -127,7 +127,7 @@ Specify an action for scenarios where the user tries to submit an invalid form.
127127
optional transform: FormTransform<TFormData, TFormValidator>;
128128
```
129129

130-
Defined in: [packages/form-core/src/FormApi.ts:191](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L191)
130+
Defined in: [packages/form-core/src/FormApi.ts:192](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L192)
131131

132132
***
133133

@@ -137,7 +137,7 @@ Defined in: [packages/form-core/src/FormApi.ts:191](https://github.com/TanStack/
137137
optional validatorAdapter: TFormValidator;
138138
```
139139

140-
Defined in: [packages/form-core/src/FormApi.ts:172](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L172)
140+
Defined in: [packages/form-core/src/FormApi.ts:173](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L173)
141141

142142
A validator adapter to support usage of extra validation types (IE: Zod, Yup, or Valibot usage)
143143

@@ -149,6 +149,6 @@ A validator adapter to support usage of extra validation types (IE: Zod, Yup, or
149149
optional validators: FormValidators<TFormData, TFormValidator>;
150150
```
151151

152-
Defined in: [packages/form-core/src/FormApi.ts:176](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L176)
152+
Defined in: [packages/form-core/src/FormApi.ts:177](https://github.com/TanStack/form/blob/main/packages/form-core/src/FormApi.ts#L177)
153153

154154
A list of validators to pass to the form

0 commit comments

Comments
 (0)