20377: Reject dataexplorer updates to incorrect page, allows dataexplorer to retry...
[arvados-workbench2.git] / 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) => ({