From d3518cf6eb602101cad0fb90c534499b7eb6cbca Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Wed, 22 Mar 2023 15:05:54 -0400 Subject: [PATCH] 20251: Fix flaky collection file browser by using race-free state update callback Arvados-DCO-1.1-Signed-off-by: Stephen Smith --- .../collection-panel-files/collection-panel-files.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/components/collection-panel-files/collection-panel-files.tsx b/src/components/collection-panel-files/collection-panel-files.tsx index 08944d40..fb36ebce 100644 --- a/src/components/collection-panel-files/collection-panel-files.tsx +++ b/src/components/collection-panel-files/collection-panel-files.tsx @@ -309,8 +309,7 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState }).reduce((prev, next) => { return { ...next, ...prev }; }, {}); - - setPathData({ ...pathData, ...newState }); + setPathData((state) => ({ ...state, ...newState })); }) .finally(() => { setIsLoading(false); @@ -405,7 +404,7 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState if (breadcrumbPath) { const index = path.indexOf(breadcrumbPath); - setPath([...path.slice(0, index + 1)]); + setPath((state) => ([...state.slice(0, index + 1)])); } if (parentPath && type === 'directory') { @@ -413,11 +412,11 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState path.pop() } - setPath([...path, parentPath]); + setPath((state) => ([...state, parentPath])); } if (subfolderPath && type === 'directory') { - setPath([...path, subfolderPath]); + setPath((state) => ([...state, subfolderPath])); } if (elem.dataset.id && type === 'file') { @@ -503,7 +502,7 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState
1 ? classes.leftPanelVisible : classes.leftPanelHidden)} data-cy="collection-files-left-panel"> 1 ? classes.backButton : classes.backButtonHidden}> - setPath([...path.slice(0, path.length -1)])}> + setPath((state) => ([...state.slice(0, state.length -1)]))}> -- 2.30.2