diff --git a/tools/cldr-apps/js/src/views/DashboardWidget.vue b/tools/cldr-apps/js/src/views/DashboardWidget.vue
index 0c7231368b6..d72b7cd3a64 100644
--- a/tools/cldr-apps/js/src/views/DashboardWidget.vue
+++ b/tools/cldr-apps/js/src/views/DashboardWidget.vue
@@ -74,93 +74,99 @@
-
- setLastClicked(entry.xpstrid)"
- >
-
+
+
...
-...
@@ -190,6 +196,7 @@ export default { level: null, downloadMessage: null, catIsHidden: {}, + updatingVisibility: false, }; }, @@ -366,7 +373,16 @@ export default { // the user may click again thinking the first click wasn't recognized. Postponing // the DOM update of thousands of rows ensures that the header checkbox updates // without delay. - setTimeout(() => (this.catIsHidden[category] = !event.target.checked), 0); + this.updatingVisibility = true; + setTimeout( + () => this.updateVisibility(event.target.checked, category), + 0 + ); + }, + + updateVisibility(checked, category) { + this.catIsHidden[category] = !checked; + this.updatingVisibility = false; }, canBeHidden(cats) {