@@ -433,9 +433,9 @@ export default types
433433 self . setFlags ( { isSubmitting : true } ) ;
434434 const res = fn ( ) ;
435435 // Wait for request, max 5s to not make disabled forever broken button;
436- // but block for at least 0.5s to prevent from double clicking.
436+ // but block for at least 0.2s to prevent from double clicking.
437437
438- Promise . race ( [ Promise . all ( [ res , delay ( 500 ) ] ) , delay ( 5000 ) ] )
438+ Promise . race ( [ Promise . all ( [ res , delay ( 200 ) ] ) , delay ( 5000 ) ] )
439439 . catch ( err => showModal ( err ?. message || err || defaultMessage ) )
440440 . then ( ( ) => self . setFlags ( { isSubmitting : false } ) ) ;
441441 }
@@ -451,20 +451,24 @@ export default types
451451 if ( ! entity . validate ( ) ) return ;
452452
453453 entity . sendUserGenerate ( ) ;
454- handleSubmittingFlag ( ( ) => {
455- getEnv ( self ) . events . invoke ( event , self , entity ) ;
454+ handleSubmittingFlag ( async ( ) => {
455+ await getEnv ( self ) . events . invoke ( event , self , entity ) ;
456456 } ) ;
457457 entity . dropDraft ( ) ;
458458 }
459459
460460 function updateAnnotation ( ) {
461+ if ( self . isSubmitting ) return ;
462+
461463 const entity = self . annotationStore . selected ;
462464
463465 entity . beforeSend ( ) ;
464466
465467 if ( ! entity . validate ( ) ) return ;
466468
467- getEnv ( self ) . events . invoke ( 'updateAnnotation' , self , entity ) ;
469+ handleSubmittingFlag ( async ( ) => {
470+ await getEnv ( self ) . events . invoke ( 'updateAnnotation' , self , entity ) ;
471+ } ) ;
468472 entity . dropDraft ( ) ;
469473 ! entity . sentUserGenerate && entity . sendUserGenerate ( ) ;
470474 }
@@ -476,6 +480,8 @@ export default types
476480 }
477481
478482 function acceptAnnotation ( ) {
483+ if ( self . isSubmitting ) return ;
484+
479485 handleSubmittingFlag ( async ( ) => {
480486 const entity = self . annotationStore . selected ;
481487
@@ -490,6 +496,8 @@ export default types
490496 }
491497
492498 function rejectAnnotation ( ) {
499+ if ( self . isSubmitting ) return ;
500+
493501 handleSubmittingFlag ( async ( ) => {
494502 const entity = self . annotationStore . selected ;
495503
@@ -516,6 +524,7 @@ export default types
516524 self . attachHotkeys ( ) ;
517525
518526 self . annotationStore = AnnotationStore . create ( { annotations : [ ] } ) ;
527+ self . initialized = false ;
519528
520529 // const c = self.annotationStore.addInitialAnnotation();
521530
0 commit comments