21224: fixed random info button fail Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa...
[arvados.git] / services / workbench2 / src / store / details-panel / details-panel-action.ts
index e14c70ace72fc10d74defb7b6f27ec6e1378e01b..1367d44613b8b785ca79eb16ba67ca3abc509557 100644 (file)
@@ -66,20 +66,25 @@ export const refreshCollectionVersionsList = (uuid: string) =>
         );
     };
 
-export const toggleDetailsPanel = () => (dispatch: Dispatch, getState: () => RootState) => {
+export const toggleDetailsPanel = (uuid: string = '') => (dispatch: Dispatch, getState: () => RootState) => {
+    const { detailsPanel, router }= getState()
     // because of material-ui issue resizing details panel breaks tabs.
     // triggering window resize event fixes that.
-    setTimeout(() => {
-        window.dispatchEvent(new Event('resize'));
-    }, SLIDE_TIMEOUT);
-    startDetailsPanelTransition(dispatch)
-    dispatch(detailsPanelActions.TOGGLE_DETAILS_PANEL());
-    if (getState().detailsPanel.isOpened) {
-        dispatch<any>(loadDetailsPanel(getState().detailsPanel.resourceUuid));
+    if(uuid !== detailsPanel.resourceUuid  && detailsPanel.isOpened){
+        dispatch<any>(loadDetailsPanel(uuid));
+    } else {
+        setTimeout(() => {
+            window.dispatchEvent(new Event('resize'));
+        }, SLIDE_TIMEOUT);
+        startDetailsPanelTransition(dispatch)
+        dispatch(detailsPanelActions.TOGGLE_DETAILS_PANEL());
+        if (getState().detailsPanel.isOpened) {
+            dispatch<any>(loadDetailsPanel(getState().detailsPanel.resourceUuid));
+        }
     }
-};
-
-const startDetailsPanelTransition = (dispatch) => {
+    };
+    
+    const startDetailsPanelTransition = (dispatch) => {
         dispatch(detailsPanelActions.START_TRANSITION())
     setTimeout(() => {
         dispatch(detailsPanelActions.END_TRANSITION())