From 9e52cad40103b3ec3e4d281dfcff22f28d1e0330 Mon Sep 17 00:00:00 2001 From: Pepijn Van Eeckhoudt Date: Tue, 17 Sep 2024 12:16:24 +0200 Subject: [PATCH] Add to allow fixing https://github.com/vaadin/flow-components/issues/6648 --- .../src/data-provider-controller/cache.d.ts | 5 +++++ .../src/data-provider-controller/cache.js | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/packages/component-base/src/data-provider-controller/cache.d.ts b/packages/component-base/src/data-provider-controller/cache.d.ts index dbeac25146..55c377a62f 100644 --- a/packages/component-base/src/data-provider-controller/cache.d.ts +++ b/packages/component-base/src/data-provider-controller/cache.d.ts @@ -85,6 +85,11 @@ export class Cache { */ setPage(page: number, items: unknown[]): void; + /** + * Clears the entries for the given page from the `items` array. + */ + clearPage(page: number): void; + /** * Retrieves the sub-cache associated with the item at the given index * in the `items` array. diff --git a/packages/component-base/src/data-provider-controller/cache.js b/packages/component-base/src/data-provider-controller/cache.js index 43ce075fa9..ae814d123e 100644 --- a/packages/component-base/src/data-provider-controller/cache.js +++ b/packages/component-base/src/data-provider-controller/cache.js @@ -205,6 +205,20 @@ export class Cache { }); } + /** + * Clears the entries for the given page from the `items` array. + * + * @param {number} page + */ + clearPage(page) { + const startIndex = page * this.pageSize; + let endIndex = startIndex + this.pageSize; + if (this.size !== undefined && endIndex >= this.size) { + endIndex = this.size; + } + this.items.fill(undefined, startIndex, endIndex); + } + /** * Retrieves the sub-cache associated with the item at the given index * in the `items` array.