@@ -7,6 +7,7 @@ export type ValidationCause = 'change' | 'blur' | 'submit'
7
7
8
8
export interface FieldOptions < TData , TFormData > {
9
9
name : unknown extends TFormData ? string : DeepKeys < TFormData >
10
+ index ?: TData extends any [ ] ? number : never
10
11
defaultValue ?: TData
11
12
validate ?: (
12
13
value : TData ,
@@ -84,12 +85,12 @@ export class FieldApi<TData, TFormData> {
84
85
this . form = opts . form
85
86
this . uid = uid ++
86
87
// Support field prefixing from FieldScope
87
- let fieldPrefix = ''
88
- if ( this . form . fieldName ) {
89
- fieldPrefix = `${ this . form . fieldName } .`
90
- }
88
+ // let fieldPrefix = ''
89
+ // if (this.form.fieldName) {
90
+ // fieldPrefix = `${this.form.fieldName}.`
91
+ // }
91
92
92
- this . name = ( fieldPrefix + opts . name ) as any
93
+ this . name = opts . name as any
93
94
94
95
this . store = new Store < FieldState < TData > > (
95
96
{
@@ -113,6 +114,7 @@ export class FieldApi<TData, TFormData> {
113
114
if ( next . value !== prevState . value ) {
114
115
this . validate ( 'change' , next . value )
115
116
}
117
+ console . log ( this )
116
118
} ,
117
119
} ,
118
120
)
@@ -178,7 +180,9 @@ export class FieldApi<TData, TFormData> {
178
180
}
179
181
}
180
182
181
- getValue = ( ) : TData => this . form . getFieldValue ( this . name )
183
+ getValue = ( ) : TData => {
184
+ return this . form . getFieldValue ( this . name )
185
+ }
182
186
setValue = (
183
187
updater : Updater < TData > ,
184
188
options ?: { touch ?: boolean ; notify ?: boolean } ,
@@ -190,11 +194,11 @@ export class FieldApi<TData, TFormData> {
190
194
191
195
getInfo = ( ) => this . form . getFieldInfo ( this . name )
192
196
193
- pushValue = ( value : TData ) =>
197
+ pushValue = ( value : TData extends any [ ] ? TData [ number ] : never ) =>
194
198
this . form . pushFieldValue ( this . name , value as any )
195
199
insertValue = ( index : number , value : TData ) =>
196
200
this . form . insertFieldValue ( this . name , index , value as any )
197
- removeValue = ( index : number ) => this . form . spliceFieldValue ( this . name , index )
201
+ removeValue = ( index : number ) => this . form . removeFieldValue ( this . name , index )
198
202
swapValues = ( aIndex : number , bIndex : number ) =>
199
203
this . form . swapFieldValues ( this . name , aIndex , bIndex )
200
204
0 commit comments