From ff3197c85e5520569eb8d67edaa9b7e9bc2ba427 Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Wed, 10 May 2023 08:59:37 -0400 Subject: [PATCH] 20377: Reject dataexplorer updates to incorrect page, allows dataexplorer to retry with correct page Arvados-DCO-1.1-Signed-off-by: Stephen Smith --- .../data-explorer/data-explorer-reducer.ts | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/store/data-explorer/data-explorer-reducer.ts b/src/store/data-explorer/data-explorer-reducer.ts index e93d291d..509fe054 100644 --- a/src/store/data-explorer/data-explorer-reducer.ts +++ b/src/store/data-explorer/data-explorer-reducer.ts @@ -70,14 +70,23 @@ export const dataExplorerReducer = ( SET_FILTERS: ({ id, columnName, filters }) => update(state, id, mapColumns(setFilters(columnName, filters))), - SET_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) => - update(state, id, (explorer) => ({ - ...explorer, - items, - itemsAvailable, - page: page || 0, - rowsPerPage, - })), + SET_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) => ( + update(state, id, (explorer) => { + // Reject updates to pages other than current, + // DataExplorer middleware should retry + if (explorer.page === page) { + return { + ...explorer, + items, + itemsAvailable, + page: page || 0, + rowsPerPage, + } + } else { + return explorer; + } + }) + ), APPEND_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) => update(state, id, (explorer) => ({ -- 2.30.2