17426: Fix stuck on loading screen.
authorPeter Amstutz <peter.amstutz@curii.com>
Sat, 27 Feb 2021 22:20:26 +0000 (17:20 -0500)
committerPeter Amstutz <peter.amstutz@curii.com>
Mon, 22 Mar 2021 21:02:56 +0000 (17:02 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

src/plugins/example/index.tsx
src/store/workbench/workbench-actions.ts

index b8bfcb0fa95cf10384410a4e54ca0164fd515277..6e2b1deedb2e6a36f205b3194d47d4947129afce 100644 (file)
@@ -18,6 +18,7 @@ import { DispatchProp, connect } from 'react-redux';
 import { MenuItem } from "@material-ui/core";
 import { propertiesActions } from '~/store/properties/properties-actions';
 import { Location } from 'history';
+import { handleFirstTimeLoad } from '~/store/workbench/workbench-actions';
 
 const categoryName = "Plugin Example";
 export const routePath = "/examplePlugin";
@@ -73,8 +74,11 @@ export const register = (pluginConfig: PluginConfig) => {
 
     pluginConfig.locationChangeHandlers.push((store: RootStore, pathname: string): boolean => {
         if (matchPath(pathname, { path: routePath, exact: true })) {
-            store.dispatch(activateSidePanelTreeItem(categoryName));
-            store.dispatch<any>(setSidePanelBreadcrumbs(categoryName));
+            store.dispatch(handleFirstTimeLoad(
+                (dispatch: Dispatch) => {
+                    dispatch<any>(activateSidePanelTreeItem(categoryName));
+                    dispatch<any>(setSidePanelBreadcrumbs(categoryName));
+                }));
             return true;
         }
         return false;
index 217c852423bf427d6e387c8956ac7f64af0400be..8ea19a145d9126aff5c39d967aa7b8f5673a04d4 100644 (file)
@@ -110,7 +110,7 @@ export const isWorkbenchLoading = (state: RootState) => {
     return progress ? progress.working : false;
 };
 
-const handleFirstTimeLoad = (action: any) =>
+export const handleFirstTimeLoad = (action: any) =>
     async (dispatch: Dispatch<any>, getState: () => RootState) => {
         try {
             await dispatch(action);