@@ -34,7 +34,7 @@ export class CubeFormInstance<
3434 TFormData extends CubeFormData < T > = CubeFormData < T > ,
3535> {
3636 public forceReRender : ( ) => void = ( ) => { } ;
37- private initialFields : PartialString < T > = { } ;
37+ private defaultValues : PartialString < T > = { } ;
3838 private fields : TFormData = { } as TFormData ;
3939 public ref = { } ;
4040 public isSubmitting = false ;
@@ -70,17 +70,17 @@ export class CubeFormInstance<
7070 newData : PartialString < T > ,
7171 touched ?: boolean ,
7272 skipRender ?: boolean ,
73- createFields = false ,
7473 inputOnly = false ,
7574 ) => {
7675 let flag = false ;
7776
77+ newData = { ...newData , ...dotize . convert ( newData ) } ;
78+
7879 Object . keys ( newData ) . forEach ( ( name : keyof T & string ) => {
7980 let field = this . fields [ name ] ;
8081
81- if ( ! field && createFields ) {
82- this . createField ( name , skipRender ) ;
83- field = this . fields [ name ] ;
82+ if ( ! field ) {
83+ return ;
8484 }
8585
8686 if ( ! field || isEqual ( field . value , newData [ name ] ) ) {
@@ -205,35 +205,35 @@ export class CubeFormInstance<
205205 }
206206
207207 setInitialFieldsValue ( values : PartialString < T > ) : void {
208- this . initialFields = { ...values , ...dotize . convert ( values ) } ;
208+ this . defaultValues = { ...values , ...dotize . convert ( values ) } ;
209209 }
210210
211211 updateInitialFieldsValue ( values : FieldTypes ) : void {
212- this . initialFields = {
213- ...this . initialFields ,
212+ this . defaultValues = {
213+ ...this . defaultValues ,
214214 ...values ,
215215 ...dotize . convert ( values ) ,
216216 } ;
217217 }
218218
219219 resetFields ( names ?: ( keyof T & string ) [ ] , skipRender ?: boolean ) : void {
220220 const fieldsValue = this . getFieldsValue ( ) ;
221- const fieldNames = Object . keys ( { ...fieldsValue , ...this . initialFields } ) ;
221+ const fieldNames = Object . keys ( { ...fieldsValue , ...this . defaultValues } ) ;
222222 const filteredFieldNames = names
223223 ? fieldNames . filter ( ( name ) => names . includes ( name ) )
224224 : fieldNames ;
225225
226226 const values = filteredFieldNames . reduce ( ( map , name ) => {
227- if ( name in this . initialFields ) {
228- map [ name ] = this . initialFields [ name ] ;
227+ if ( name in this . defaultValues ) {
228+ map [ name ] = this . defaultValues [ name ] ;
229229 } else {
230230 map [ name ] = undefined ;
231231 }
232232
233233 return map ;
234234 } , { } ) ;
235235
236- this . setFieldsValue ( values , false , skipRender , true ) ;
236+ this . setFieldsValue ( values , false , skipRender ) ;
237237 }
238238
239239 async validateField < Name extends keyof T & string > ( name : Name ) : Promise < any > {
@@ -404,6 +404,7 @@ export class CubeFormInstance<
404404 touched : false ,
405405 errors : [ ] ,
406406 validationId : 0 ,
407+ value : this . defaultValues [ name ] ,
407408 ...data ,
408409 // it should be impossible to define or override status value
409410 status : data ?. errors ?. length ? 'invalid' : undefined ,
0 commit comments