From d2e0b5709da9482e31cb0d99be3957b813b26ab5 Mon Sep 17 00:00:00 2001 From: Antoine Prentout Date: Fri, 13 Mar 2026 15:18:05 +0100 Subject: [PATCH 1/2] Facets: Fix concurenccy issues when user toggle facets fast --- .../filtering-renderers/common/facets-loader.ts | 3 +-- addon/core/handler.ts | 9 +++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts b/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts index 3cafb29a..0dff476f 100644 --- a/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts +++ b/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts @@ -81,6 +81,7 @@ export default class HyperTableV2FacetsLoader extends Component { + this.ongoingFacetApply = true; this.appliedFacets.includes(facet.identifier) ? this.removeFacet(facet) : this.addFacet(facet); }, facet, @@ -96,7 +97,6 @@ export default class HyperTableV2FacetsLoader extends Component { @@ -120,7 +120,6 @@ export default class HyperTableV2FacetsLoader extends Component { diff --git a/addon/core/handler.ts b/addon/core/handler.ts index 5c381ec0..5df56a91 100644 --- a/addon/core/handler.ts +++ b/addon/core/handler.ts @@ -286,8 +286,9 @@ export default class TableHandler { ); return this.tableManager.upsertColumns({ columns: this.columns }).then(({ columns }) => { - this._reinitColumnsAndRows(columns); - this.triggerEvent('apply-filters', column, filters); + return this._reinitColumnsAndRows(columns).then(() => { + this.triggerEvent('apply-filters', column, filters); + }); }); } @@ -477,7 +478,7 @@ export default class TableHandler { this.currentPage = 1; } - private _reinitColumnsAndRows(columns: Column[]): void { + private _reinitColumnsAndRows(columns: Column[]): Promise { let shouldRedraw = false; columns.forEach((column) => { let existingColumn = this.columns.find((c) => c.definition.key === column.definition.key); @@ -493,6 +494,6 @@ export default class TableHandler { this.rows = []; this.currentPage = 1; - this.fetchRows(); + return this.fetchRows(); } } From 0af309491b109d8f254e8e89489ac6d434a809f0 Mon Sep 17 00:00:00 2001 From: Antoine Prentout Date: Tue, 17 Mar 2026 14:15:50 +0100 Subject: [PATCH 2/2] [Facets] Remove debounce --- .../filtering-renderers/common/facets-loader.ts | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts b/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts index 0dff476f..f15bfb2f 100644 --- a/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts +++ b/addon/components/hyper-table-v2/filtering-renderers/common/facets-loader.ts @@ -22,7 +22,6 @@ interface FacetsLoaderArgs { } const SEARCH_DEBOUNCE_TIME: number = 300; -const FACET_APPLY_DEBOUNCE_TIME: number = 300; export default class HyperTableV2FacetsLoader extends Component { @service declare intl: IntlService; @@ -78,15 +77,9 @@ export default class HyperTableV2FacetsLoader extends Component { - this.ongoingFacetApply = true; - this.appliedFacets.includes(facet.identifier) ? this.removeFacet(facet) : this.addFacet(facet); - }, - facet, - FACET_APPLY_DEBOUNCE_TIME - ); + + this.ongoingFacetApply = true; + this.appliedFacets.includes(facet.identifier) ? this.removeFacet(facet) : this.addFacet(facet); } private addFacet(facet: Facet): void {