20377: Reject dataexplorer updates to incorrect page, allows dataexplorer to retry...
authorStephen Smith <stephen@curii.com>
Wed, 10 May 2023 12:59:37 +0000 (08:59 -0400)
committerStephen Smith <stephen@curii.com>
Wed, 10 May 2023 12:59:37 +0000 (08:59 -0400)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/store/data-explorer/data-explorer-reducer.ts

index e93d291d5dcaed367ca8c07d5e2c596fd4e06b01..509fe054ff825de8a3ace98bb334e6791fad4445 100644 (file)
@@ -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) => ({