@@ -124,7 +124,7 @@ class DbLabInstanceForm extends Component<
124
124
const url = window . location . href . split ( '/' )
125
125
const instanceID = url [ url . length - 1 ]
126
126
127
- this . unsubscribe = ( Store . listen as RefluxTypes [ " listen" ] ) ( function ( ) {
127
+ this . unsubscribe = ( Store . listen as RefluxTypes [ ' listen' ] ) ( function ( ) {
128
128
that . setState ( { data : this . data , instanceID : instanceID } )
129
129
130
130
const auth = this . data && this . data . auth ? this . data . auth : null
@@ -138,7 +138,8 @@ class DbLabInstanceForm extends Component<
138
138
project_label :
139
139
that . state . project_label ||
140
140
dbLabInstances . data [ instanceID ] ?. project_label_or_name ,
141
- token : dbLabInstances . data [ instanceID ] ?. verify_token ,
141
+ token :
142
+ that . state . token || dbLabInstances . data [ instanceID ] ?. verify_token ,
142
143
useTunnel :
143
144
that . state . useTunnel || dbLabInstances . data [ instanceID ] ?. use_tunnel ,
144
145
url : that . state . url || dbLabInstances . data [ instanceID ] ?. url ,
@@ -224,14 +225,30 @@ class DbLabInstanceForm extends Component<
224
225
}
225
226
}
226
227
228
+ clearFieldError = ( fieldName : string ) => {
229
+ const errorFields = this . state . errorFields . filter ( ( field ) => {
230
+ return field !== fieldName
231
+ } )
232
+
233
+ this . setState ( { errorFields : errorFields } )
234
+ }
235
+
227
236
checkUrlHandler = ( ) => {
228
237
const auth =
229
238
this . state . data && this . state . data . auth ? this . state . data . auth : null
230
239
const data = this . state . data ? this . state . data . newDbLabInstance : null
231
- const errorFields = [ ]
240
+ const errorFields : string [ ] = [ ]
232
241
233
242
if ( ! this . state . url ) {
234
243
errorFields . push ( 'url' )
244
+ }
245
+
246
+ if ( ! this . state . token ) {
247
+ errorFields . push ( 'token' )
248
+ }
249
+
250
+ if ( errorFields . length > 0 ) {
251
+ this . setState ( { errorFields : errorFields } )
235
252
return
236
253
}
237
254
@@ -259,6 +276,7 @@ class DbLabInstanceForm extends Component<
259
276
260
277
generateTokenHandler = ( ) => {
261
278
this . setState ( { token : generateToken ( ) } )
279
+ this . clearFieldError ( 'token' )
262
280
}
263
281
264
282
render ( ) {
@@ -357,6 +375,7 @@ class DbLabInstanceForm extends Component<
357
375
this . setState ( {
358
376
project : e . target . value ,
359
377
} )
378
+ this . clearFieldError ( 'project' )
360
379
Actions . resetNewDbLabInstance ( )
361
380
} }
362
381
margin = "normal"
@@ -389,6 +408,7 @@ class DbLabInstanceForm extends Component<
389
408
this . setState ( {
390
409
project_label : e . target . value ,
391
410
} )
411
+ this . clearFieldError ( 'project_label' )
392
412
Actions . resetNewDbLabInstance ( )
393
413
} }
394
414
margin = "normal"
@@ -423,6 +443,7 @@ class DbLabInstanceForm extends Component<
423
443
this . setState ( {
424
444
token : e . target . value ,
425
445
} )
446
+ this . clearFieldError ( 'token' )
426
447
Actions . resetNewDbLabInstance ( )
427
448
} }
428
449
margin = "normal"
@@ -470,6 +491,7 @@ class DbLabInstanceForm extends Component<
470
491
this . setState ( {
471
492
url : e . target . value ,
472
493
} )
494
+ this . clearFieldError ( 'url' )
473
495
Actions . resetNewDbLabInstance ( )
474
496
} }
475
497
margin = "normal"
@@ -534,6 +556,7 @@ class DbLabInstanceForm extends Component<
534
556
this . setState ( {
535
557
sshServerUrl : e . target . value ,
536
558
} )
559
+ this . clearFieldError ( 'token' )
537
560
Actions . resetNewDbLabInstance ( )
538
561
} }
539
562
margin = "normal"
0 commit comments