Skip to content
This repository was archived by the owner on Apr 18, 2024. It is now read-only.

Commit 24cd03b

Browse files
authored
fix: DEV-1518: improve review performance (#436)
* fix: isSubmitting for all ctrl+enter handlers * fix: reduce Update button lock made for UX
1 parent 3e71527 commit 24cd03b

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/stores/AppStore.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)