-const getResourceNavigationAction = (resource: Resource) => {
- switch (resource.kind) {
- case ResourceKind.COLLECTION:
- return navigateToCollection(resource.uuid);
- case ResourceKind.PROJECT:
- case ResourceKind.USER:
- return navigateToProject(resource.uuid);
- default:
- return cannotNavigateToResource(resource);
- }
-};
-
-export const loadWorkbench = () =>
- async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const { auth, router } = getState();
- const { user } = auth;
- if (user) {
- const userResource = await dispatch<any>(loadResource(user.uuid));
- if (userResource) {
- dispatch(projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns }));
- dispatch(favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns }));
- dispatch<any>(initSidePanelTree());
- if (router.location) {
- const match = matchRootRoute(router.location.pathname);
- if (match) {
- dispatch(navigateToProject(userResource.uuid));
- }
- }
- } else {
- dispatch(userIsNotAuthenticated);
- }
- } else {
- dispatch(userIsNotAuthenticated);
+export const navigateTo = (uuid: string) =>
+ async (dispatch: Dispatch) => {
+ const kind = extractUuidKind(uuid);
+ if (kind === ResourceKind.PROJECT || kind === ResourceKind.USER) {
+ dispatch<any>(navigateToProject(uuid));
+ } else if (kind === ResourceKind.COLLECTION) {
+ dispatch<any>(navigateToCollection(uuid));
+ } else if (kind === ResourceKind.CONTAINER_REQUEST) {
+ dispatch<any>(navigateToProcess(uuid));
+ }
+ if (uuid === SidePanelTreeCategory.FAVORITES) {
+ dispatch<any>(navigateToFavorites);