19865: Fixes code indentation.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Wed, 11 Jan 2023 22:29:05 +0000 (19:29 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 12 Jan 2023 20:07:02 +0000 (17:07 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

src/store/data-explorer/data-explorer-middleware-service.ts
src/store/data-explorer/data-explorer-middleware.ts
src/store/data-explorer/data-explorer-reducer.ts
src/store/workbench/workbench-actions.ts

index 0b8d6debe7ca44d9134905e94ea0e803d69b896a..f5f24495d5455cb6f7f4f5a0fe6122d6c5a5313b 100644 (file)
@@ -11,48 +11,48 @@ import { createTree } from 'models/tree';
 import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree';
 
 export abstract class DataExplorerMiddlewareService {
-  protected readonly id: string;
-
-  protected constructor(id: string) {
-    this.id = id;
-  }
-
-  public getId() {
-    return this.id;
-  }
-
-  public getColumnFilters<T>(
-    columns: DataColumns<T>,
-    columnName: string
-  ): DataTableFilters {
-    return getDataExplorerColumnFilters(columns, columnName);
-  }
-
-  abstract requestItems(
-    api: MiddlewareAPI<Dispatch, RootState>,
-    criteriaChanged?: boolean
-  ): Promise<void>;
+    protected readonly id: string;
+
+    protected constructor(id: string) {
+        this.id = id;
+    }
+
+    public getId() {
+        return this.id;
+    }
+
+    public getColumnFilters<T>(
+        columns: DataColumns<T>,
+        columnName: string
+    ): DataTableFilters {
+        return getDataExplorerColumnFilters(columns, columnName);
+    }
+
+    abstract requestItems(
+        api: MiddlewareAPI<Dispatch, RootState>,
+        criteriaChanged?: boolean
+    ): Promise<void>;
 }
 
 export const getDataExplorerColumnFilters = <T>(
-  columns: DataColumns<T>,
-  columnName: string
+    columns: DataColumns<T>,
+    columnName: string
 ): DataTableFilters => {
-  const column = columns.find((c) => c.name === columnName);
-  return column ? column.filters : createTree();
+    const column = columns.find((c) => c.name === columnName);
+    return column ? column.filters : createTree();
 };
 
 export const dataExplorerToListParams = (dataExplorer: DataExplorer) => ({
-  limit: dataExplorer.rowsPerPage,
-  offset: dataExplorer.page * dataExplorer.rowsPerPage,
+    limit: dataExplorer.rowsPerPage,
+    offset: dataExplorer.page * dataExplorer.rowsPerPage,
 });
 
 export const listResultsToDataExplorerItemsMeta = <R>({
-  itemsAvailable,
-  offset,
-  limit,
+    itemsAvailable,
+    offset,
+    limit,
 }: ListResults<R>) => ({
-  itemsAvailable,
-  page: Math.floor(offset / limit),
-  rowsPerPage: limit,
+    itemsAvailable,
+    page: Math.floor(offset / limit),
+    rowsPerPage: limit,
 });
index 7d0655e4968ee36392f812eb6da354db77467a5d..f83b064641ee82f6d7922ba801f4c85fff5b29e4 100644 (file)
@@ -7,109 +7,107 @@ import { RootState } from 'store/store';
 import { ServiceRepository } from 'services/services';
 import { Middleware } from 'redux';
 import {
-  dataExplorerActions,
-  bindDataExplorerActions,
-  DataTableRequestState,
+    dataExplorerActions,
+    bindDataExplorerActions,
+    DataTableRequestState,
 } from './data-explorer-action';
 import { getDataExplorer } from './data-explorer-reducer';
 import { DataExplorerMiddlewareService } from './data-explorer-middleware-service';
 
 export const dataExplorerMiddleware =
-  (service: DataExplorerMiddlewareService): Middleware =>
-  (api) =>
-  (next) => {
-    const actions = bindDataExplorerActions(service.getId());
+    (service: DataExplorerMiddlewareService): Middleware =>
+    (api) =>
+    (next) => {
+        const actions = bindDataExplorerActions(service.getId());
 
-    return (action) => {
-      const handleAction =
-        <T extends { id: string }>(handler: (data: T) => void) =>
-        (data: T) => {
-          next(action);
-          if (data.id === service.getId()) {
-            handler(data);
-          }
+        return (action) => {
+            const handleAction =
+                <T extends { id: string }>(handler: (data: T) => void) =>
+                    (data: T) => {
+                        next(action);
+                        if (data.id === service.getId()) {
+                            handler(data);
+                        }
+                    };
+            dataExplorerActions.match(action, {
+                SET_PAGE: handleAction(() => {
+                    api.dispatch(actions.REQUEST_ITEMS(false));
+                }),
+                SET_ROWS_PER_PAGE: handleAction(() => {
+                    api.dispatch(actions.REQUEST_ITEMS(true));
+                }),
+                SET_FILTERS: handleAction(() => {
+                    api.dispatch(actions.RESET_PAGINATION());
+                    api.dispatch(actions.REQUEST_ITEMS(true));
+                }),
+                TOGGLE_SORT: handleAction(() => {
+                    api.dispatch(actions.REQUEST_ITEMS(true));
+                }),
+                SET_EXPLORER_SEARCH_VALUE: handleAction(() => {
+                    api.dispatch(actions.RESET_PAGINATION());
+                    api.dispatch(actions.REQUEST_ITEMS(true));
+                }),
+                REQUEST_ITEMS: handleAction(({ criteriaChanged }) => {
+                    api.dispatch<any>(async (
+                        dispatch: Dispatch,
+                        getState: () => RootState,
+                        services: ServiceRepository
+                    ) => {
+                        while (true) {
+                            let de = getDataExplorer(
+                                getState().dataExplorer,
+                                service.getId()
+                            );
+                            switch (de.requestState) {
+                                case DataTableRequestState.IDLE:
+                                    // Start a new request.
+                                    try {
+                                        dispatch(
+                                            actions.SET_REQUEST_STATE({
+                                                requestState: DataTableRequestState.PENDING,
+                                            })
+                                        );
+                                        await service.requestItems(api, criteriaChanged);
+                                    } catch {
+                                        dispatch(
+                                            actions.SET_REQUEST_STATE({
+                                                requestState: DataTableRequestState.NEED_REFRESH,
+                                            })
+                                        );
+                                    }
+                                    // Now check if the state is still PENDING, if it moved to NEED_REFRESH
+                                    // then we need to reissue requestItems
+                                    de = getDataExplorer(
+                                        getState().dataExplorer,
+                                        service.getId()
+                                    );
+                                    const complete =
+                                        de.requestState === DataTableRequestState.PENDING;
+                                    dispatch(
+                                        actions.SET_REQUEST_STATE({
+                                            requestState: DataTableRequestState.IDLE,
+                                        })
+                                    );
+                                    if (complete) {
+                                        return;
+                                    }
+                                    break;
+                                case DataTableRequestState.PENDING:
+                                    // State is PENDING, move it to NEED_REFRESH so that when the current request finishes it starts a new one.
+                                    dispatch(
+                                        actions.SET_REQUEST_STATE({
+                                            requestState: DataTableRequestState.NEED_REFRESH,
+                                        })
+                                    );
+                                    return;
+                                case DataTableRequestState.NEED_REFRESH:
+                                    // Nothing to do right now.
+                                    return;
+                            }
+                        }
+                    });
+                }),
+                default: () => next(action),
+            });
         };
-      dataExplorerActions.match(action, {
-        SET_PAGE: handleAction(() => {
-          api.dispatch(actions.REQUEST_ITEMS(false));
-        }),
-        SET_ROWS_PER_PAGE: handleAction(() => {
-          api.dispatch(actions.REQUEST_ITEMS(true));
-        }),
-        SET_FILTERS: handleAction(() => {
-          api.dispatch(actions.RESET_PAGINATION());
-          api.dispatch(actions.REQUEST_ITEMS(true));
-        }),
-        TOGGLE_SORT: handleAction(() => {
-          api.dispatch(actions.REQUEST_ITEMS(true));
-        }),
-        SET_EXPLORER_SEARCH_VALUE: handleAction(() => {
-          api.dispatch(actions.RESET_PAGINATION());
-          api.dispatch(actions.REQUEST_ITEMS(true));
-        }),
-        REQUEST_ITEMS: handleAction(({ criteriaChanged }) => {
-          api.dispatch<any>(
-            async (
-              dispatch: Dispatch,
-              getState: () => RootState,
-              services: ServiceRepository
-            ) => {
-              while (true) {
-                let de = getDataExplorer(
-                  getState().dataExplorer,
-                  service.getId()
-                );
-                switch (de.requestState) {
-                  case DataTableRequestState.IDLE:
-                    // Start a new request.
-                    try {
-                      dispatch(
-                        actions.SET_REQUEST_STATE({
-                          requestState: DataTableRequestState.PENDING,
-                        })
-                      );
-                      await service.requestItems(api, criteriaChanged);
-                    } catch {
-                      dispatch(
-                        actions.SET_REQUEST_STATE({
-                          requestState: DataTableRequestState.NEED_REFRESH,
-                        })
-                      );
-                    }
-                    // Now check if the state is still PENDING, if it moved to NEED_REFRESH
-                    // then we need to reissue requestItems
-                    de = getDataExplorer(
-                      getState().dataExplorer,
-                      service.getId()
-                    );
-                    const complete =
-                      de.requestState === DataTableRequestState.PENDING;
-                    dispatch(
-                      actions.SET_REQUEST_STATE({
-                        requestState: DataTableRequestState.IDLE,
-                      })
-                    );
-                    if (complete) {
-                      return;
-                    }
-                    break;
-                  case DataTableRequestState.PENDING:
-                    // State is PENDING, move it to NEED_REFRESH so that when the current request finishes it starts a new one.
-                    dispatch(
-                      actions.SET_REQUEST_STATE({
-                        requestState: DataTableRequestState.NEED_REFRESH,
-                      })
-                    );
-                    return;
-                  case DataTableRequestState.NEED_REFRESH:
-                    // Nothing to do right now.
-                    return;
-                }
-              }
-            }
-          );
-        }),
-        default: () => next(action),
-      });
     };
-  };
index 997b6011d5779e90b8900e190f26b3b1b249b431..1e875054b7bb9a4c18dc578438c8a662ee6a1abc 100644 (file)
 // SPDX-License-Identifier: AGPL-3.0
 
 import {
-  DataColumn,
-  resetSortDirection,
-  SortDirection,
-  toggleSortDirection,
+    DataColumn,
+    resetSortDirection,
+    SortDirection,
+    toggleSortDirection,
 } from 'components/data-table/data-column';
 import {
-  DataExplorerAction,
-  dataExplorerActions,
-  DataTableRequestState,
+    DataExplorerAction,
+    dataExplorerActions,
+    DataTableRequestState,
 } from './data-explorer-action';
 import {
-  DataColumns,
-  DataTableFetchMode,
+    DataColumns,
+    DataTableFetchMode,
 } from 'components/data-table/data-table';
 import { DataTableFilters } from 'components/data-table-filters/data-table-filters-tree';
 
 export interface DataExplorer {
-  fetchMode: DataTableFetchMode;
-  columns: DataColumns<any>;
-  items: any[];
-  itemsAvailable: number;
-  page: number;
-  rowsPerPage: number;
-  rowsPerPageOptions: number[];
-  searchValue: string;
-  working?: boolean;
-  requestState: DataTableRequestState;
+    fetchMode: DataTableFetchMode;
+    columns: DataColumns<any>;
+    items: any[];
+    itemsAvailable: number;
+    page: number;
+    rowsPerPage: number;
+    rowsPerPageOptions: number[];
+    searchValue: string;
+    working?: boolean;
+    requestState: DataTableRequestState;
 }
 
 export const initialDataExplorer: DataExplorer = {
-  fetchMode: DataTableFetchMode.PAGINATED,
-  columns: [],
-  items: [],
-  itemsAvailable: 0,
-  page: 0,
-  rowsPerPage: 50,
-  rowsPerPageOptions: [10, 20, 50, 100, 200, 500],
-  searchValue: '',
-  requestState: DataTableRequestState.IDLE,
+    fetchMode: DataTableFetchMode.PAGINATED,
+    columns: [],
+    items: [],
+    itemsAvailable: 0,
+    page: 0,
+    rowsPerPage: 50,
+    rowsPerPageOptions: [10, 20, 50, 100, 200, 500],
+    searchValue: '',
+    requestState: DataTableRequestState.IDLE,
 };
 
 export type DataExplorerState = Record<string, DataExplorer>;
 
 export const dataExplorerReducer = (
-  state: DataExplorerState = {},
-  action: DataExplorerAction
+    state: DataExplorerState = {},
+    action: DataExplorerAction
 ) => {
-  return dataExplorerActions.match(action, {
-    CLEAR: ({ id }) =>
-      update(state, id, (explorer) => ({
-        ...explorer,
-        page: 0,
-        itemsAvailable: 0,
-        items: [],
-      })),
-
-    RESET_PAGINATION: ({ id }) =>
-      update(state, id, (explorer) => ({ ...explorer, page: 0 })),
-
-    SET_FETCH_MODE: ({ id, fetchMode }) =>
-      update(state, id, (explorer) => ({ ...explorer, fetchMode })),
-
-    SET_COLUMNS: ({ id, columns }) => update(state, id, setColumns(columns)),
-
-    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,
-      })),
-
-    APPEND_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) =>
-      update(state, id, (explorer) => ({
-        ...explorer,
-        items: state[id].items.concat(items),
-        itemsAvailable: state[id].itemsAvailable + itemsAvailable,
-        page,
-        rowsPerPage,
-      })),
-
-    SET_PAGE: ({ id, page }) =>
-      update(state, id, (explorer) => ({ ...explorer, page })),
-
-    SET_ROWS_PER_PAGE: ({ id, rowsPerPage }) =>
-      update(state, id, (explorer) => ({ ...explorer, rowsPerPage })),
-
-    SET_EXPLORER_SEARCH_VALUE: ({ id, searchValue }) =>
-      update(state, id, (explorer) => ({ ...explorer, searchValue })),
-
-    SET_REQUEST_STATE: ({ id, requestState }) =>
-      update(state, id, (explorer) => ({ ...explorer, requestState })),
-
-    TOGGLE_SORT: ({ id, columnName }) =>
-      update(state, id, mapColumns(toggleSort(columnName))),
-
-    TOGGLE_COLUMN: ({ id, columnName }) =>
-      update(state, id, mapColumns(toggleColumn(columnName))),
-
-    default: () => state,
-  });
+    return dataExplorerActions.match(action, {
+        CLEAR: ({ id }) =>
+            update(state, id, (explorer) => ({
+                ...explorer,
+                page: 0,
+                itemsAvailable: 0,
+                items: [],
+            })),
+
+        RESET_PAGINATION: ({ id }) =>
+            update(state, id, (explorer) => ({ ...explorer, page: 0 })),
+
+        SET_FETCH_MODE: ({ id, fetchMode }) =>
+            update(state, id, (explorer) => ({ ...explorer, fetchMode })),
+
+        SET_COLUMNS: ({ id, columns }) => update(state, id, setColumns(columns)),
+
+        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,
+            })),
+
+        APPEND_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) =>
+            update(state, id, (explorer) => ({
+                ...explorer,
+                items: state[id].items.concat(items),
+                itemsAvailable: state[id].itemsAvailable + itemsAvailable,
+                page,
+                rowsPerPage,
+            })),
+
+        SET_PAGE: ({ id, page }) =>
+            update(state, id, (explorer) => ({ ...explorer, page })),
+
+        SET_ROWS_PER_PAGE: ({ id, rowsPerPage }) =>
+            update(state, id, (explorer) => ({ ...explorer, rowsPerPage })),
+
+        SET_EXPLORER_SEARCH_VALUE: ({ id, searchValue }) =>
+            update(state, id, (explorer) => ({ ...explorer, searchValue })),
+
+        SET_REQUEST_STATE: ({ id, requestState }) =>
+            update(state, id, (explorer) => ({ ...explorer, requestState })),
+
+        TOGGLE_SORT: ({ id, columnName }) =>
+            update(state, id, mapColumns(toggleSort(columnName))),
+
+        TOGGLE_COLUMN: ({ id, columnName }) =>
+            update(state, id, mapColumns(toggleColumn(columnName))),
+
+        default: () => state,
+    });
 };
 export const getDataExplorer = (state: DataExplorerState, id: string) => {
-  const returnValue = state[id] || initialDataExplorer;
-  return returnValue;
+    const returnValue = state[id] || initialDataExplorer;
+    return returnValue;
 };
 
 export const getSortColumn = (dataExplorer: DataExplorer) =>
-  dataExplorer.columns.find(
-    (c: any) => !!c.sortDirection && c.sortDirection !== SortDirection.NONE
-  );
+    dataExplorer.columns.find(
+        (c: any) => !!c.sortDirection && c.sortDirection !== SortDirection.NONE
+    );
 
 const update = (
-  state: DataExplorerState,
-  id: string,
-  updateFn: (dataExplorer: DataExplorer) => DataExplorer
+    state: DataExplorerState,
+    id: string,
+    updateFn: (dataExplorer: DataExplorer) => DataExplorer
 ) => ({ ...state, [id]: updateFn(getDataExplorer(state, id)) });
 
 const canUpdateColumns = (
-  prevColumns: DataColumns<any>,
-  nextColumns: DataColumns<any>
+    prevColumns: DataColumns<any>,
+    nextColumns: DataColumns<any>
 ) => {
-  if (prevColumns.length !== nextColumns.length) {
-    return true;
-  }
-  for (let i = 0; i < nextColumns.length; i++) {
-    const pc = prevColumns[i];
-    const nc = nextColumns[i];
-    if (pc.key !== nc.key || pc.name !== nc.name) {
-      return true;
+    if (prevColumns.length !== nextColumns.length) {
+        return true;
     }
-  }
-  return false;
+    for (let i = 0; i < nextColumns.length; i++) {
+        const pc = prevColumns[i];
+        const nc = nextColumns[i];
+        if (pc.key !== nc.key || pc.name !== nc.name) {
+            return true;
+        }
+    }
+    return false;
 };
 
 const setColumns =
-  (columns: DataColumns<any>) => (dataExplorer: DataExplorer) => ({
-    ...dataExplorer,
-    columns: canUpdateColumns(dataExplorer.columns, columns)
-      ? columns
-      : dataExplorer.columns,
-  });
+    (columns: DataColumns<any>) => (dataExplorer: DataExplorer) => ({
+        ...dataExplorer,
+        columns: canUpdateColumns(dataExplorer.columns, columns)
+            ? columns
+            : dataExplorer.columns,
+    });
 
 const mapColumns =
-  (mapFn: (column: DataColumn<any>) => DataColumn<any>) =>
-  (dataExplorer: DataExplorer) => ({
-    ...dataExplorer,
-    columns: dataExplorer.columns.map(mapFn),
-  });
+    (mapFn: (column: DataColumn<any>) => DataColumn<any>) =>
+        (dataExplorer: DataExplorer) => ({
+            ...dataExplorer,
+            columns: dataExplorer.columns.map(mapFn),
+        });
 
 const toggleSort = (columnName: string) => (column: DataColumn<any>) =>
-  column.name === columnName
-    ? toggleSortDirection(column)
-    : resetSortDirection(column);
+    column.name === columnName
+        ? toggleSortDirection(column)
+        : resetSortDirection(column);
 
 const toggleColumn = (columnName: string) => (column: DataColumn<any>) =>
-  column.name === columnName
-    ? { ...column, selected: !column.selected }
-    : column;
+    column.name === columnName
+        ? { ...column, selected: !column.selected }
+        : column;
 
 const setFilters =
-  (columnName: string, filters: DataTableFilters) =>
-  (column: DataColumn<any>) =>
-    column.name === columnName ? { ...column, filters } : column;
+    (columnName: string, filters: DataTableFilters) =>
+        (column: DataColumn<any>) =>
+            column.name === columnName ? { ...column, filters } : column;
index 0ad3fb8e55e496e7b3e9274ee1fd47935842ae73..b2da727b6615820d63639a67be27dcada870dc68 100644 (file)
@@ -8,40 +8,40 @@ import { getUserUuid } from 'common/getuser';
 import { loadDetailsPanel } from 'store/details-panel/details-panel-action';
 import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
 import {
-  favoritePanelActions,
-  loadFavoritePanel,
+    favoritePanelActions,
+    loadFavoritePanel,
 } from 'store/favorite-panel/favorite-panel-action';
 import {
-  getProjectPanelCurrentUuid,
-  openProjectPanel,
-  projectPanelActions,
-  setIsProjectPanelTrashed,
+    getProjectPanelCurrentUuid,
+    openProjectPanel,
+    projectPanelActions,
+    setIsProjectPanelTrashed,
 } from 'store/project-panel/project-panel-action';
 import {
-  activateSidePanelTreeItem,
-  initSidePanelTree,
-  loadSidePanelTreeProjects,
-  SidePanelTreeCategory,
+    activateSidePanelTreeItem,
+    initSidePanelTree,
+    loadSidePanelTreeProjects,
+    SidePanelTreeCategory,
 } from 'store/side-panel-tree/side-panel-tree-actions';
 import { updateResources } from 'store/resources/resources-actions';
 import { projectPanelColumns } from 'views/project-panel/project-panel';
 import { favoritePanelColumns } from 'views/favorite-panel/favorite-panel';
 import { matchRootRoute } from 'routes/routes';
 import {
-  setBreadcrumbs,
-  setGroupDetailsBreadcrumbs,
-  setGroupsBreadcrumbs,
-  setProcessBreadcrumbs,
-  setSharedWithMeBreadcrumbs,
-  setSidePanelBreadcrumbs,
-  setTrashBreadcrumbs,
-  setUsersBreadcrumbs,
-  setMyAccountBreadcrumbs,
-  setUserProfileBreadcrumbs,
+    setBreadcrumbs,
+    setGroupDetailsBreadcrumbs,
+    setGroupsBreadcrumbs,
+    setProcessBreadcrumbs,
+    setSharedWithMeBreadcrumbs,
+    setSidePanelBreadcrumbs,
+    setTrashBreadcrumbs,
+    setUsersBreadcrumbs,
+    setMyAccountBreadcrumbs,
+    setUserProfileBreadcrumbs,
 } from 'store/breadcrumbs/breadcrumbs-actions';
 import {
-  navigateTo,
-  navigateToRootProject,
+    navigateTo,
+    navigateToRootProject,
 } from 'store/navigation/navigation-action';
 import { MoveToFormDialogData } from 'store/move-to-dialog/move-to-dialog';
 import { ServiceRepository } from 'services/services';
@@ -58,20 +58,20 @@ import * as processUpdateActions from 'store/processes/process-update-actions';
 import * as processCopyActions from 'store/processes/process-copy-actions';
 import { trashPanelColumns } from 'views/trash-panel/trash-panel';
 import {
-  loadTrashPanel,
-  trashPanelActions,
+    loadTrashPanel,
+    trashPanelActions,
 } from 'store/trash-panel/trash-panel-action';
 import { loadProcessPanel } from 'store/process-panel/process-panel-actions';
 import {
-  loadSharedWithMePanel,
-  sharedWithMePanelActions,
+    loadSharedWithMePanel,
+    sharedWithMePanelActions,
 } from 'store/shared-with-me-panel/shared-with-me-panel-actions';
 import { CopyFormDialogData } from 'store/copy-dialog/copy-dialog';
 import { workflowPanelActions } from 'store/workflow-panel/workflow-panel-actions';
 import { loadSshKeysPanel } from 'store/auth/auth-action-ssh';
 import {
-  loadLinkAccountPanel,
-  linkAccountPanelActions,
+    loadLinkAccountPanel,
+    linkAccountPanelActions,
 } from 'store/link-account-panel/link-account-panel-actions';
 import { loadSiteManagerPanel } from 'store/auth/auth-action-session';
 import { workflowPanelColumns } from 'views/workflow-panel/workflow-panel-view';
@@ -83,13 +83,13 @@ import { GroupContentsResource } from 'services/groups-service/groups-service';
 import { MatchCases, ofType, unionize, UnionOf } from 'common/unionize';
 import { loadRunProcessPanel } from 'store/run-process-panel/run-process-panel-actions';
 import {
-  collectionPanelActions,
-  loadCollectionPanel,
+    collectionPanelActions,
+    loadCollectionPanel,
 } from 'store/collection-panel/collection-panel-action';
 import { CollectionResource } from 'models/collection';
 import {
-  loadSearchResultsPanel,
-  searchResultsPanelActions,
+    loadSearchResultsPanel,
+    searchResultsPanelActions,
 } from 'store/search-results-panel/search-results-panel-actions';
 import { searchResultsPanelColumns } from 'views/search-results-panel/search-results-panel-view';
 import { loadVirtualMachinesPanel } from 'store/virtual-machines/virtual-machines-actions';
@@ -98,39 +98,39 @@ import { loadKeepServicesPanel } from 'store/keep-services/keep-services-actions
 import { loadUsersPanel, userBindedActions } from 'store/users/users-actions';
 import * as userProfilePanelActions from 'store/user-profile/user-profile-actions';
 import {
-  linkPanelActions,
-  loadLinkPanel,
+    linkPanelActions,
+    loadLinkPanel,
 } from 'store/link-panel/link-panel-actions';
 import { linkPanelColumns } from 'views/link-panel/link-panel-root';
 import { userPanelColumns } from 'views/user-panel/user-panel';
 import {
-  loadApiClientAuthorizationsPanel,
-  apiClientAuthorizationsActions,
+    loadApiClientAuthorizationsPanel,
+    apiClientAuthorizationsActions,
 } from 'store/api-client-authorizations/api-client-authorizations-actions';
 import { apiClientAuthorizationPanelColumns } from 'views/api-client-authorization-panel/api-client-authorization-panel-root';
 import * as groupPanelActions from 'store/groups-panel/groups-panel-actions';
 import { groupsPanelColumns } from 'views/groups-panel/groups-panel';
 import * as groupDetailsPanelActions from 'store/group-details-panel/group-details-panel-actions';
 import {
-  groupDetailsMembersPanelColumns,
-  groupDetailsPermissionsPanelColumns,
+    groupDetailsMembersPanelColumns,
+    groupDetailsPermissionsPanelColumns,
 } from 'views/group-details-panel/group-details-panel';
 import { DataTableFetchMode } from 'components/data-table/data-table';
 import {
-  loadPublicFavoritePanel,
-  publicFavoritePanelActions,
+    loadPublicFavoritePanel,
+    publicFavoritePanelActions,
 } from 'store/public-favorites-panel/public-favorites-action';
 import { publicFavoritePanelColumns } from 'views/public-favorites-panel/public-favorites-panel';
 import {
-  loadCollectionsContentAddressPanel,
-  collectionsContentAddressActions,
+    loadCollectionsContentAddressPanel,
+    collectionsContentAddressActions,
 } from 'store/collections-content-address-panel/collections-content-address-panel-actions';
 import { collectionContentAddressPanelColumns } from 'views/collection-content-address-panel/collection-content-address-panel';
 import { subprocessPanelActions } from 'store/subprocess-panel/subprocess-panel-actions';
 import { subprocessPanelColumns } from 'views/subprocess-panel/subprocess-panel-root';
 import {
-  loadAllProcessesPanel,
-  allProcessesPanelActions,
+    loadAllProcessesPanel,
+    allProcessesPanelActions,
 } from '../all-processes-panel/all-processes-panel-action';
 import { allProcessesPanelColumns } from 'views/all-processes-panel/all-processes-panel';
 import { AdminMenuIcon } from 'components/icon/icon';
@@ -139,758 +139,758 @@ import { userProfileGroupsColumns } from 'views/user-profile-panel/user-profile-
 export const WORKBENCH_LOADING_SCREEN = 'workbenchLoadingScreen';
 
 export const isWorkbenchLoading = (state: RootState) => {
-  const progress = getProgressIndicator(WORKBENCH_LOADING_SCREEN)(
-    state.progressIndicator
-  );
-  return progress ? progress.working : false;
+    const progress = getProgressIndicator(WORKBENCH_LOADING_SCREEN)(
+        state.progressIndicator
+    );
+    return progress ? progress.working : false;
 };
 
 export const handleFirstTimeLoad =
-  (action: any) =>
-  async (dispatch: Dispatch<any>, getState: () => RootState) => {
-    try {
-      await dispatch(action);
-    } finally {
-      if (isWorkbenchLoading(getState())) {
-        dispatch(
-          progressIndicatorActions.STOP_WORKING(WORKBENCH_LOADING_SCREEN)
-        );
-      }
-    }
-  };
+    (action: any) =>
+        async (dispatch: Dispatch<any>, getState: () => RootState) => {
+            try {
+                await dispatch(action);
+            } finally {
+                if (isWorkbenchLoading(getState())) {
+                    dispatch(
+                        progressIndicatorActions.STOP_WORKING(WORKBENCH_LOADING_SCREEN)
+                    );
+                }
+            }
+        };
 
 export const loadWorkbench =
-  () =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    dispatch(progressIndicatorActions.START_WORKING(WORKBENCH_LOADING_SCREEN));
-    const { auth, router } = getState();
-    const { user } = auth;
-    if (user) {
-      dispatch(
-        projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })
-      );
-      dispatch(
-        favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns })
-      );
-      dispatch(
-        allProcessesPanelActions.SET_COLUMNS({
-          columns: allProcessesPanelColumns,
-        })
-      );
-      dispatch(
-        publicFavoritePanelActions.SET_COLUMNS({
-          columns: publicFavoritePanelColumns,
-        })
-      );
-      dispatch(trashPanelActions.SET_COLUMNS({ columns: trashPanelColumns }));
-      dispatch(
-        sharedWithMePanelActions.SET_COLUMNS({ columns: projectPanelColumns })
-      );
-      dispatch(
-        workflowPanelActions.SET_COLUMNS({ columns: workflowPanelColumns })
-      );
-      dispatch(
-        searchResultsPanelActions.SET_FETCH_MODE({
-          fetchMode: DataTableFetchMode.INFINITE,
-        })
-      );
-      dispatch(
-        searchResultsPanelActions.SET_COLUMNS({
-          columns: searchResultsPanelColumns,
-        })
-      );
-      dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns }));
-      dispatch(
-        groupPanelActions.GroupsPanelActions.SET_COLUMNS({
-          columns: groupsPanelColumns,
-        })
-      );
-      dispatch(
-        groupDetailsPanelActions.GroupMembersPanelActions.SET_COLUMNS({
-          columns: groupDetailsMembersPanelColumns,
-        })
-      );
-      dispatch(
-        groupDetailsPanelActions.GroupPermissionsPanelActions.SET_COLUMNS({
-          columns: groupDetailsPermissionsPanelColumns,
-        })
-      );
-      dispatch(
-        userProfilePanelActions.UserProfileGroupsActions.SET_COLUMNS({
-          columns: userProfileGroupsColumns,
-        })
-      );
-      dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns }));
-      dispatch(
-        apiClientAuthorizationsActions.SET_COLUMNS({
-          columns: apiClientAuthorizationPanelColumns,
-        })
-      );
-      dispatch(
-        collectionsContentAddressActions.SET_COLUMNS({
-          columns: collectionContentAddressPanelColumns,
-        })
-      );
-      dispatch(
-        subprocessPanelActions.SET_COLUMNS({ columns: subprocessPanelColumns })
-      );
-
-      if (services.linkAccountService.getAccountToLink()) {
-        dispatch(linkAccountPanelActions.HAS_SESSION_DATA());
-      }
-
-      dispatch<any>(initSidePanelTree());
-      if (router.location) {
-        const match = matchRootRoute(router.location.pathname);
-        if (match) {
-          dispatch<any>(navigateToRootProject);
-        }
-      }
-    } else {
-      dispatch(userIsNotAuthenticated);
-    }
-  };
+    () =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            dispatch(progressIndicatorActions.START_WORKING(WORKBENCH_LOADING_SCREEN));
+            const { auth, router } = getState();
+            const { user } = auth;
+            if (user) {
+                dispatch(
+                    projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })
+                );
+                dispatch(
+                    favoritePanelActions.SET_COLUMNS({ columns: favoritePanelColumns })
+                );
+                dispatch(
+                    allProcessesPanelActions.SET_COLUMNS({
+                        columns: allProcessesPanelColumns,
+                    })
+                );
+                dispatch(
+                    publicFavoritePanelActions.SET_COLUMNS({
+                        columns: publicFavoritePanelColumns,
+                    })
+                );
+                dispatch(trashPanelActions.SET_COLUMNS({ columns: trashPanelColumns }));
+                dispatch(
+                    sharedWithMePanelActions.SET_COLUMNS({ columns: projectPanelColumns })
+                );
+                dispatch(
+                    workflowPanelActions.SET_COLUMNS({ columns: workflowPanelColumns })
+                );
+                dispatch(
+                    searchResultsPanelActions.SET_FETCH_MODE({
+                        fetchMode: DataTableFetchMode.INFINITE,
+                    })
+                );
+                dispatch(
+                    searchResultsPanelActions.SET_COLUMNS({
+                        columns: searchResultsPanelColumns,
+                    })
+                );
+                dispatch(userBindedActions.SET_COLUMNS({ columns: userPanelColumns }));
+                dispatch(
+                    groupPanelActions.GroupsPanelActions.SET_COLUMNS({
+                        columns: groupsPanelColumns,
+                    })
+                );
+                dispatch(
+                    groupDetailsPanelActions.GroupMembersPanelActions.SET_COLUMNS({
+                        columns: groupDetailsMembersPanelColumns,
+                    })
+                );
+                dispatch(
+                    groupDetailsPanelActions.GroupPermissionsPanelActions.SET_COLUMNS({
+                        columns: groupDetailsPermissionsPanelColumns,
+                    })
+                );
+                dispatch(
+                    userProfilePanelActions.UserProfileGroupsActions.SET_COLUMNS({
+                        columns: userProfileGroupsColumns,
+                    })
+                );
+                dispatch(linkPanelActions.SET_COLUMNS({ columns: linkPanelColumns }));
+                dispatch(
+                    apiClientAuthorizationsActions.SET_COLUMNS({
+                        columns: apiClientAuthorizationPanelColumns,
+                    })
+                );
+                dispatch(
+                    collectionsContentAddressActions.SET_COLUMNS({
+                        columns: collectionContentAddressPanelColumns,
+                    })
+                );
+                dispatch(
+                    subprocessPanelActions.SET_COLUMNS({ columns: subprocessPanelColumns })
+                );
+
+                if (services.linkAccountService.getAccountToLink()) {
+                    dispatch(linkAccountPanelActions.HAS_SESSION_DATA());
+                }
+
+                dispatch<any>(initSidePanelTree());
+                if (router.location) {
+                    const match = matchRootRoute(router.location.pathname);
+                    if (match) {
+                        dispatch<any>(navigateToRootProject);
+                    }
+                }
+            } else {
+                dispatch(userIsNotAuthenticated);
+            }
+        };
 
 export const loadFavorites = () =>
-  handleFirstTimeLoad((dispatch: Dispatch) => {
-    dispatch<any>(activateSidePanelTreeItem(SidePanelTreeCategory.FAVORITES));
-    dispatch<any>(loadFavoritePanel());
-    dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.FAVORITES));
-  });
+    handleFirstTimeLoad((dispatch: Dispatch) => {
+        dispatch<any>(activateSidePanelTreeItem(SidePanelTreeCategory.FAVORITES));
+        dispatch<any>(loadFavoritePanel());
+        dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.FAVORITES));
+    });
 
 export const loadCollectionContentAddress = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadCollectionsContentAddressPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadCollectionsContentAddressPanel());
+    }
 );
 
 export const loadTrash = () =>
-  handleFirstTimeLoad((dispatch: Dispatch) => {
-    dispatch<any>(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH));
-    dispatch<any>(loadTrashPanel());
-    dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.TRASH));
-  });
+    handleFirstTimeLoad((dispatch: Dispatch) => {
+        dispatch<any>(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH));
+        dispatch<any>(loadTrashPanel());
+        dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.TRASH));
+    });
 
 export const loadAllProcesses = () =>
-  handleFirstTimeLoad((dispatch: Dispatch) => {
-    dispatch<any>(
-      activateSidePanelTreeItem(SidePanelTreeCategory.ALL_PROCESSES)
-    );
-    dispatch<any>(loadAllProcessesPanel());
-    dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.ALL_PROCESSES));
-  });
+    handleFirstTimeLoad((dispatch: Dispatch) => {
+        dispatch<any>(
+            activateSidePanelTreeItem(SidePanelTreeCategory.ALL_PROCESSES)
+        );
+        dispatch<any>(loadAllProcessesPanel());
+        dispatch<any>(setSidePanelBreadcrumbs(SidePanelTreeCategory.ALL_PROCESSES));
+    });
 
 export const loadProject = (uuid: string) =>
-  handleFirstTimeLoad(
-    async (
-      dispatch: Dispatch<any>,
-      getState: () => RootState,
-      services: ServiceRepository
-    ) => {
-      const userUuid = getUserUuid(getState());
-      dispatch(setIsProjectPanelTrashed(false));
-      if (!userUuid) {
-        return;
-      }
-      if (extractUuidKind(uuid) === ResourceKind.USER && userUuid !== uuid) {
-        // Load another users home projects
-        dispatch(finishLoadingProject(uuid));
-      } else if (userUuid !== uuid) {
-        await dispatch(finishLoadingProject(uuid));
-        const match = await loadGroupContentsResource({
-          uuid,
-          userUuid,
-          services,
-        });
-        match({
-          OWNED: async () => {
-            await dispatch(activateSidePanelTreeItem(uuid));
-            dispatch<any>(setSidePanelBreadcrumbs(uuid));
-          },
-          SHARED: async () => {
-            await dispatch(activateSidePanelTreeItem(uuid));
-            dispatch<any>(setSharedWithMeBreadcrumbs(uuid));
-          },
-          TRASHED: async () => {
-            await dispatch(
-              activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)
-            );
-            dispatch<any>(setTrashBreadcrumbs(uuid));
-            dispatch(setIsProjectPanelTrashed(true));
-          },
-        });
-      } else {
-        await dispatch(finishLoadingProject(userUuid));
-        await dispatch(activateSidePanelTreeItem(userUuid));
-        dispatch<any>(setSidePanelBreadcrumbs(userUuid));
-      }
-    }
-  );
+    handleFirstTimeLoad(
+        async (
+            dispatch: Dispatch<any>,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            const userUuid = getUserUuid(getState());
+            dispatch(setIsProjectPanelTrashed(false));
+            if (!userUuid) {
+                return;
+            }
+            if (extractUuidKind(uuid) === ResourceKind.USER && userUuid !== uuid) {
+                // Load another users home projects
+                dispatch(finishLoadingProject(uuid));
+            } else if (userUuid !== uuid) {
+                await dispatch(finishLoadingProject(uuid));
+                const match = await loadGroupContentsResource({
+                    uuid,
+                    userUuid,
+                    services,
+                });
+                match({
+                    OWNED: async () => {
+                        await dispatch(activateSidePanelTreeItem(uuid));
+                        dispatch<any>(setSidePanelBreadcrumbs(uuid));
+                    },
+                    SHARED: async () => {
+                        await dispatch(activateSidePanelTreeItem(uuid));
+                        dispatch<any>(setSharedWithMeBreadcrumbs(uuid));
+                    },
+                    TRASHED: async () => {
+                        await dispatch(
+                            activateSidePanelTreeItem(SidePanelTreeCategory.TRASH)
+                        );
+                        dispatch<any>(setTrashBreadcrumbs(uuid));
+                        dispatch(setIsProjectPanelTrashed(true));
+                    },
+                });
+            } else {
+                await dispatch(finishLoadingProject(userUuid));
+                await dispatch(activateSidePanelTreeItem(userUuid));
+                dispatch<any>(setSidePanelBreadcrumbs(userUuid));
+            }
+        }
+    );
 
 export const createProject =
-  (data: projectCreateActions.ProjectCreateFormDialogData) =>
-  async (dispatch: Dispatch) => {
-    const newProject = await dispatch<any>(
-      projectCreateActions.createProject(data)
-    );
-    if (newProject) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Project has been successfully created.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-      await dispatch<any>(loadSidePanelTreeProjects(newProject.ownerUuid));
-      dispatch<any>(navigateTo(newProject.uuid));
-    }
-  };
+    (data: projectCreateActions.ProjectCreateFormDialogData) =>
+        async (dispatch: Dispatch) => {
+            const newProject = await dispatch<any>(
+                projectCreateActions.createProject(data)
+            );
+            if (newProject) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Project has been successfully created.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+                await dispatch<any>(loadSidePanelTreeProjects(newProject.ownerUuid));
+                dispatch<any>(navigateTo(newProject.uuid));
+            }
+        };
 
 export const moveProject =
-  (data: MoveToFormDialogData) =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    try {
-      const oldProject = getResource(data.uuid)(getState().resources);
-      const oldOwnerUuid = oldProject ? oldProject.ownerUuid : '';
-      const movedProject = await dispatch<any>(
-        projectMoveActions.moveProject(data)
-      );
-      if (movedProject) {
-        dispatch(
-          snackbarActions.OPEN_SNACKBAR({
-            message: 'Project has been moved',
-            hideDuration: 2000,
-            kind: SnackbarKind.SUCCESS,
-          })
-        );
-        if (oldProject) {
-          await dispatch<any>(loadSidePanelTreeProjects(oldProject.ownerUuid));
-        }
-        dispatch<any>(
-          reloadProjectMatchingUuid([
-            oldOwnerUuid,
-            movedProject.ownerUuid,
-            movedProject.uuid,
-          ])
-        );
-      }
-    } catch (e) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: e.message,
-          hideDuration: 2000,
-          kind: SnackbarKind.ERROR,
-        })
-      );
-    }
-  };
+    (data: MoveToFormDialogData) =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            try {
+                const oldProject = getResource(data.uuid)(getState().resources);
+                const oldOwnerUuid = oldProject ? oldProject.ownerUuid : '';
+                const movedProject = await dispatch<any>(
+                    projectMoveActions.moveProject(data)
+                );
+                if (movedProject) {
+                    dispatch(
+                        snackbarActions.OPEN_SNACKBAR({
+                            message: 'Project has been moved',
+                            hideDuration: 2000,
+                            kind: SnackbarKind.SUCCESS,
+                        })
+                    );
+                    if (oldProject) {
+                        await dispatch<any>(loadSidePanelTreeProjects(oldProject.ownerUuid));
+                    }
+                    dispatch<any>(
+                        reloadProjectMatchingUuid([
+                            oldOwnerUuid,
+                            movedProject.ownerUuid,
+                            movedProject.uuid,
+                        ])
+                    );
+                }
+            } catch (e) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: e.message,
+                        hideDuration: 2000,
+                        kind: SnackbarKind.ERROR,
+                    })
+                );
+            }
+        };
 
 export const updateProject =
-  (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
-  async (dispatch: Dispatch) => {
-    const updatedProject = await dispatch<any>(
-      projectUpdateActions.updateProject(data)
-    );
-    if (updatedProject) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Project has been successfully updated.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-      await dispatch<any>(loadSidePanelTreeProjects(updatedProject.ownerUuid));
-      dispatch<any>(
-        reloadProjectMatchingUuid([
-          updatedProject.ownerUuid,
-          updatedProject.uuid,
-        ])
-      );
-    }
-  };
+    (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
+        async (dispatch: Dispatch) => {
+            const updatedProject = await dispatch<any>(
+                projectUpdateActions.updateProject(data)
+            );
+            if (updatedProject) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Project has been successfully updated.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+                await dispatch<any>(loadSidePanelTreeProjects(updatedProject.ownerUuid));
+                dispatch<any>(
+                    reloadProjectMatchingUuid([
+                        updatedProject.ownerUuid,
+                        updatedProject.uuid,
+                    ])
+                );
+            }
+        };
 
 export const updateGroup =
-  (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
-  async (dispatch: Dispatch) => {
-    const updatedGroup = await dispatch<any>(
-      groupPanelActions.updateGroup(data)
-    );
-    if (updatedGroup) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Group has been successfully updated.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-      await dispatch<any>(loadSidePanelTreeProjects(updatedGroup.ownerUuid));
-      dispatch<any>(
-        reloadProjectMatchingUuid([updatedGroup.ownerUuid, updatedGroup.uuid])
-      );
-    }
-  };
+    (data: projectUpdateActions.ProjectUpdateFormDialogData) =>
+        async (dispatch: Dispatch) => {
+            const updatedGroup = await dispatch<any>(
+                groupPanelActions.updateGroup(data)
+            );
+            if (updatedGroup) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Group has been successfully updated.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+                await dispatch<any>(loadSidePanelTreeProjects(updatedGroup.ownerUuid));
+                dispatch<any>(
+                    reloadProjectMatchingUuid([updatedGroup.ownerUuid, updatedGroup.uuid])
+                );
+            }
+        };
 
 export const loadCollection = (uuid: string) =>
-  handleFirstTimeLoad(
-    async (
-      dispatch: Dispatch<any>,
-      getState: () => RootState,
-      services: ServiceRepository
-    ) => {
-      const userUuid = getUserUuid(getState());
-      if (userUuid) {
-        const match = await loadGroupContentsResource({
-          uuid,
-          userUuid,
-          services,
-        });
-        match({
-          OWNED: (collection) => {
-            dispatch(
-              collectionPanelActions.SET_COLLECTION(
-                collection as CollectionResource
-              )
-            );
-            dispatch(updateResources([collection]));
-            dispatch(activateSidePanelTreeItem(collection.ownerUuid));
-            dispatch(setSidePanelBreadcrumbs(collection.ownerUuid));
-            dispatch(loadCollectionPanel(collection.uuid));
-          },
-          SHARED: (collection) => {
-            dispatch(
-              collectionPanelActions.SET_COLLECTION(
-                collection as CollectionResource
-              )
-            );
-            dispatch(updateResources([collection]));
-            dispatch<any>(setSharedWithMeBreadcrumbs(collection.ownerUuid));
-            dispatch(activateSidePanelTreeItem(collection.ownerUuid));
-            dispatch(loadCollectionPanel(collection.uuid));
-          },
-          TRASHED: (collection) => {
-            dispatch(
-              collectionPanelActions.SET_COLLECTION(
-                collection as CollectionResource
-              )
-            );
-            dispatch(updateResources([collection]));
-            dispatch(setTrashBreadcrumbs(''));
-            dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH));
-            dispatch(loadCollectionPanel(collection.uuid));
-          },
-        });
-      }
-    }
-  );
+    handleFirstTimeLoad(
+        async (
+            dispatch: Dispatch<any>,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            const userUuid = getUserUuid(getState());
+            if (userUuid) {
+                const match = await loadGroupContentsResource({
+                    uuid,
+                    userUuid,
+                    services,
+                });
+                match({
+                    OWNED: (collection) => {
+                        dispatch(
+                            collectionPanelActions.SET_COLLECTION(
+                                collection as CollectionResource
+                            )
+                        );
+                        dispatch(updateResources([collection]));
+                        dispatch(activateSidePanelTreeItem(collection.ownerUuid));
+                        dispatch(setSidePanelBreadcrumbs(collection.ownerUuid));
+                        dispatch(loadCollectionPanel(collection.uuid));
+                    },
+                    SHARED: (collection) => {
+                        dispatch(
+                            collectionPanelActions.SET_COLLECTION(
+                                collection as CollectionResource
+                            )
+                        );
+                        dispatch(updateResources([collection]));
+                        dispatch<any>(setSharedWithMeBreadcrumbs(collection.ownerUuid));
+                        dispatch(activateSidePanelTreeItem(collection.ownerUuid));
+                        dispatch(loadCollectionPanel(collection.uuid));
+                    },
+                    TRASHED: (collection) => {
+                        dispatch(
+                            collectionPanelActions.SET_COLLECTION(
+                                collection as CollectionResource
+                            )
+                        );
+                        dispatch(updateResources([collection]));
+                        dispatch(setTrashBreadcrumbs(''));
+                        dispatch(activateSidePanelTreeItem(SidePanelTreeCategory.TRASH));
+                        dispatch(loadCollectionPanel(collection.uuid));
+                    },
+                });
+            }
+        }
+    );
 
 export const createCollection =
-  (data: collectionCreateActions.CollectionCreateFormDialogData) =>
-  async (dispatch: Dispatch) => {
-    const collection = await dispatch<any>(
-      collectionCreateActions.createCollection(data)
-    );
-    if (collection) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Collection has been successfully created.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-      dispatch<any>(updateResources([collection]));
-      dispatch<any>(navigateTo(collection.uuid));
-    }
-  };
+    (data: collectionCreateActions.CollectionCreateFormDialogData) =>
+        async (dispatch: Dispatch) => {
+            const collection = await dispatch<any>(
+                collectionCreateActions.createCollection(data)
+            );
+            if (collection) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Collection has been successfully created.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+                dispatch<any>(updateResources([collection]));
+                dispatch<any>(navigateTo(collection.uuid));
+            }
+        };
 
 export const copyCollection =
-  (data: CopyFormDialogData) =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    try {
-      const copyToProject = getResource(data.ownerUuid)(getState().resources);
-      const collection = await dispatch<any>(
-        collectionCopyActions.copyCollection(data)
-      );
-      if (copyToProject && collection) {
-        dispatch<any>(reloadProjectMatchingUuid([copyToProject.uuid]));
-        dispatch(
-          snackbarActions.OPEN_SNACKBAR({
-            message: 'Collection has been copied.',
-            hideDuration: 3000,
-            kind: SnackbarKind.SUCCESS,
-            link: collection.ownerUuid,
-          })
-        );
-      }
-    } catch (e) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: e.message,
-          hideDuration: 2000,
-          kind: SnackbarKind.ERROR,
-        })
-      );
-    }
-  };
+    (data: CopyFormDialogData) =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            try {
+                const copyToProject = getResource(data.ownerUuid)(getState().resources);
+                const collection = await dispatch<any>(
+                    collectionCopyActions.copyCollection(data)
+                );
+                if (copyToProject && collection) {
+                    dispatch<any>(reloadProjectMatchingUuid([copyToProject.uuid]));
+                    dispatch(
+                        snackbarActions.OPEN_SNACKBAR({
+                            message: 'Collection has been copied.',
+                            hideDuration: 3000,
+                            kind: SnackbarKind.SUCCESS,
+                            link: collection.ownerUuid,
+                        })
+                    );
+                }
+            } catch (e) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: e.message,
+                        hideDuration: 2000,
+                        kind: SnackbarKind.ERROR,
+                    })
+                );
+            }
+        };
 
 export const moveCollection =
-  (data: MoveToFormDialogData) =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    try {
-      const collection = await dispatch<any>(
-        collectionMoveActions.moveCollection(data)
-      );
-      dispatch<any>(updateResources([collection]));
-      dispatch<any>(reloadProjectMatchingUuid([collection.ownerUuid]));
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Collection has been moved.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-    } catch (e) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: e.message,
-          hideDuration: 2000,
-          kind: SnackbarKind.ERROR,
-        })
-      );
-    }
-  };
+    (data: MoveToFormDialogData) =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            try {
+                const collection = await dispatch<any>(
+                    collectionMoveActions.moveCollection(data)
+                );
+                dispatch<any>(updateResources([collection]));
+                dispatch<any>(reloadProjectMatchingUuid([collection.ownerUuid]));
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Collection has been moved.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+            } catch (e) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: e.message,
+                        hideDuration: 2000,
+                        kind: SnackbarKind.ERROR,
+                    })
+                );
+            }
+        };
 
 export const loadProcess = (uuid: string) =>
-  handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState) => {
-    dispatch<any>(loadProcessPanel(uuid));
-    const process = await dispatch<any>(processesActions.loadProcess(uuid));
-    await dispatch<any>(
-      activateSidePanelTreeItem(process.containerRequest.ownerUuid)
-    );
-    dispatch<any>(setProcessBreadcrumbs(uuid));
-    dispatch<any>(loadDetailsPanel(uuid));
-  });
+    handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState) => {
+        dispatch<any>(loadProcessPanel(uuid));
+        const process = await dispatch<any>(processesActions.loadProcess(uuid));
+        await dispatch<any>(
+            activateSidePanelTreeItem(process.containerRequest.ownerUuid)
+        );
+        dispatch<any>(setProcessBreadcrumbs(uuid));
+        dispatch<any>(loadDetailsPanel(uuid));
+    });
 
 export const updateProcess =
-  (data: processUpdateActions.ProcessUpdateFormDialogData) =>
-  async (dispatch: Dispatch) => {
-    try {
-      const process = await dispatch<any>(
-        processUpdateActions.updateProcess(data)
-      );
-      if (process) {
-        dispatch(
-          snackbarActions.OPEN_SNACKBAR({
-            message: 'Process has been successfully updated.',
-            hideDuration: 2000,
-            kind: SnackbarKind.SUCCESS,
-          })
-        );
-        dispatch<any>(updateResources([process]));
-        dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
-      }
-    } catch (e) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: e.message,
-          hideDuration: 2000,
-          kind: SnackbarKind.ERROR,
-        })
-      );
-    }
-  };
+    (data: processUpdateActions.ProcessUpdateFormDialogData) =>
+        async (dispatch: Dispatch) => {
+            try {
+                const process = await dispatch<any>(
+                    processUpdateActions.updateProcess(data)
+                );
+                if (process) {
+                    dispatch(
+                        snackbarActions.OPEN_SNACKBAR({
+                            message: 'Process has been successfully updated.',
+                            hideDuration: 2000,
+                            kind: SnackbarKind.SUCCESS,
+                        })
+                    );
+                    dispatch<any>(updateResources([process]));
+                    dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+                }
+            } catch (e) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: e.message,
+                        hideDuration: 2000,
+                        kind: SnackbarKind.ERROR,
+                    })
+                );
+            }
+        };
 
 export const moveProcess =
-  (data: MoveToFormDialogData) =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    try {
-      const process = await dispatch<any>(processMoveActions.moveProcess(data));
-      dispatch<any>(updateResources([process]));
-      dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Process has been moved.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-    } catch (e) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: e.message,
-          hideDuration: 2000,
-          kind: SnackbarKind.ERROR,
-        })
-      );
-    }
-  };
+    (data: MoveToFormDialogData) =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            try {
+                const process = await dispatch<any>(processMoveActions.moveProcess(data));
+                dispatch<any>(updateResources([process]));
+                dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Process has been moved.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+            } catch (e) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: e.message,
+                        hideDuration: 2000,
+                        kind: SnackbarKind.ERROR,
+                    })
+                );
+            }
+        };
 
 export const copyProcess =
-  (data: CopyFormDialogData) =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    try {
-      const process = await dispatch<any>(processCopyActions.copyProcess(data));
-      dispatch<any>(updateResources([process]));
-      dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: 'Process has been copied.',
-          hideDuration: 2000,
-          kind: SnackbarKind.SUCCESS,
-        })
-      );
-    } catch (e) {
-      dispatch(
-        snackbarActions.OPEN_SNACKBAR({
-          message: e.message,
-          hideDuration: 2000,
-          kind: SnackbarKind.ERROR,
-        })
-      );
-    }
-  };
+    (data: CopyFormDialogData) =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            try {
+                const process = await dispatch<any>(processCopyActions.copyProcess(data));
+                dispatch<any>(updateResources([process]));
+                dispatch<any>(reloadProjectMatchingUuid([process.ownerUuid]));
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: 'Process has been copied.',
+                        hideDuration: 2000,
+                        kind: SnackbarKind.SUCCESS,
+                    })
+                );
+            } catch (e) {
+                dispatch(
+                    snackbarActions.OPEN_SNACKBAR({
+                        message: e.message,
+                        hideDuration: 2000,
+                        kind: SnackbarKind.ERROR,
+                    })
+                );
+            }
+        };
 
 export const resourceIsNotLoaded = (uuid: string) =>
-  snackbarActions.OPEN_SNACKBAR({
-    message: `Resource identified by ${uuid} is not loaded.`,
-    kind: SnackbarKind.ERROR,
-  });
+    snackbarActions.OPEN_SNACKBAR({
+        message: `Resource identified by ${uuid} is not loaded.`,
+        kind: SnackbarKind.ERROR,
+    });
 
 export const userIsNotAuthenticated = snackbarActions.OPEN_SNACKBAR({
-  message: 'User is not authenticated',
-  kind: SnackbarKind.ERROR,
+    message: 'User is not authenticated',
+    kind: SnackbarKind.ERROR,
 });
 
 export const couldNotLoadUser = snackbarActions.OPEN_SNACKBAR({
-  message: 'Could not load user',
-  kind: SnackbarKind.ERROR,
+    message: 'Could not load user',
+    kind: SnackbarKind.ERROR,
 });
 
 export const reloadProjectMatchingUuid =
-  (matchingUuids: string[]) =>
-  async (
-    dispatch: Dispatch,
-    getState: () => RootState,
-    services: ServiceRepository
-  ) => {
-    const currentProjectPanelUuid = getProjectPanelCurrentUuid(getState());
-    if (
-      currentProjectPanelUuid &&
-      matchingUuids.some((uuid) => uuid === currentProjectPanelUuid)
-    ) {
-      dispatch<any>(loadProject(currentProjectPanelUuid));
-    }
-  };
+    (matchingUuids: string[]) =>
+        async (
+            dispatch: Dispatch,
+            getState: () => RootState,
+            services: ServiceRepository
+        ) => {
+            const currentProjectPanelUuid = getProjectPanelCurrentUuid(getState());
+            if (
+                currentProjectPanelUuid &&
+                matchingUuids.some((uuid) => uuid === currentProjectPanelUuid)
+            ) {
+                dispatch<any>(loadProject(currentProjectPanelUuid));
+            }
+        };
 
 export const loadSharedWithMe = handleFirstTimeLoad(
-  async (dispatch: Dispatch) => {
-    dispatch<any>(loadSharedWithMePanel());
-    await dispatch<any>(
-      activateSidePanelTreeItem(SidePanelTreeCategory.SHARED_WITH_ME)
-    );
-    await dispatch<any>(
-      setSidePanelBreadcrumbs(SidePanelTreeCategory.SHARED_WITH_ME)
-    );
-  }
+    async (dispatch: Dispatch) => {
+        dispatch<any>(loadSharedWithMePanel());
+        await dispatch<any>(
+            activateSidePanelTreeItem(SidePanelTreeCategory.SHARED_WITH_ME)
+        );
+        await dispatch<any>(
+            setSidePanelBreadcrumbs(SidePanelTreeCategory.SHARED_WITH_ME)
+        );
+    }
 );
 
 export const loadRunProcess = handleFirstTimeLoad(
-  async (dispatch: Dispatch) => {
-    await dispatch<any>(loadRunProcessPanel());
-  }
+    async (dispatch: Dispatch) => {
+        await dispatch<any>(loadRunProcessPanel());
+    }
 );
 
 export const loadPublicFavorites = () =>
-  handleFirstTimeLoad((dispatch: Dispatch) => {
-    dispatch<any>(
-      activateSidePanelTreeItem(SidePanelTreeCategory.PUBLIC_FAVORITES)
-    );
-    dispatch<any>(loadPublicFavoritePanel());
-    dispatch<any>(
-      setSidePanelBreadcrumbs(SidePanelTreeCategory.PUBLIC_FAVORITES)
-    );
-  });
+    handleFirstTimeLoad((dispatch: Dispatch) => {
+        dispatch<any>(
+            activateSidePanelTreeItem(SidePanelTreeCategory.PUBLIC_FAVORITES)
+        );
+        dispatch<any>(loadPublicFavoritePanel());
+        dispatch<any>(
+            setSidePanelBreadcrumbs(SidePanelTreeCategory.PUBLIC_FAVORITES)
+        );
+    });
 
 export const loadSearchResults = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadSearchResultsPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadSearchResultsPanel());
+    }
 );
 
 export const loadLinks = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadLinkPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadLinkPanel());
+    }
 );
 
 export const loadVirtualMachines = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadVirtualMachinesPanel());
-    dispatch(setBreadcrumbs([{ label: 'Virtual Machines' }]));
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadVirtualMachinesPanel());
+        dispatch(setBreadcrumbs([{ label: 'Virtual Machines' }]));
+    }
 );
 
 export const loadVirtualMachinesAdmin = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadVirtualMachinesPanel());
-    dispatch(
-      setBreadcrumbs([{ label: 'Virtual Machines Admin', icon: AdminMenuIcon }])
-    );
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadVirtualMachinesPanel());
+        dispatch(
+            setBreadcrumbs([{ label: 'Virtual Machines Admin', icon: AdminMenuIcon }])
+        );
+    }
 );
 
 export const loadRepositories = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadRepositoriesPanel());
-    dispatch(setBreadcrumbs([{ label: 'Repositories' }]));
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadRepositoriesPanel());
+        dispatch(setBreadcrumbs([{ label: 'Repositories' }]));
+    }
 );
 
 export const loadSshKeys = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadSshKeysPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadSshKeysPanel());
+    }
 );
 
 export const loadSiteManager = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadSiteManagerPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadSiteManagerPanel());
+    }
 );
 
 export const loadUserProfile = (userUuid?: string) =>
-  handleFirstTimeLoad((dispatch: Dispatch<any>) => {
-    if (userUuid) {
-      dispatch(setUserProfileBreadcrumbs(userUuid));
-      dispatch(userProfilePanelActions.loadUserProfilePanel(userUuid));
-    } else {
-      dispatch(setMyAccountBreadcrumbs());
-      dispatch(userProfilePanelActions.loadUserProfilePanel());
-    }
-  });
+    handleFirstTimeLoad((dispatch: Dispatch<any>) => {
+        if (userUuid) {
+            dispatch(setUserProfileBreadcrumbs(userUuid));
+            dispatch(userProfilePanelActions.loadUserProfilePanel(userUuid));
+        } else {
+            dispatch(setMyAccountBreadcrumbs());
+            dispatch(userProfilePanelActions.loadUserProfilePanel());
+        }
+    });
 
 export const loadLinkAccount = handleFirstTimeLoad(
-  (dispatch: Dispatch<any>) => {
-    dispatch(loadLinkAccountPanel());
-  }
+    (dispatch: Dispatch<any>) => {
+        dispatch(loadLinkAccountPanel());
+    }
 );
 
 export const loadKeepServices = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadKeepServicesPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadKeepServicesPanel());
+    }
 );
 
 export const loadUsers = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadUsersPanel());
-    dispatch(setUsersBreadcrumbs());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadUsersPanel());
+        dispatch(setUsersBreadcrumbs());
+    }
 );
 
 export const loadApiClientAuthorizations = handleFirstTimeLoad(
-  async (dispatch: Dispatch<any>) => {
-    await dispatch(loadApiClientAuthorizationsPanel());
-  }
+    async (dispatch: Dispatch<any>) => {
+        await dispatch(loadApiClientAuthorizationsPanel());
+    }
 );
 
 export const loadGroupsPanel = handleFirstTimeLoad(
-  (dispatch: Dispatch<any>) => {
-    dispatch(setGroupsBreadcrumbs());
-    dispatch(groupPanelActions.loadGroupsPanel());
-  }
+    (dispatch: Dispatch<any>) => {
+        dispatch(setGroupsBreadcrumbs());
+        dispatch(groupPanelActions.loadGroupsPanel());
+    }
 );
 
 export const loadGroupDetailsPanel = (groupUuid: string) =>
-  handleFirstTimeLoad((dispatch: Dispatch<any>) => {
-    dispatch(setGroupDetailsBreadcrumbs(groupUuid));
-    dispatch(groupDetailsPanelActions.loadGroupDetailsPanel(groupUuid));
-  });
+    handleFirstTimeLoad((dispatch: Dispatch<any>) => {
+        dispatch(setGroupDetailsBreadcrumbs(groupUuid));
+        dispatch(groupDetailsPanelActions.loadGroupDetailsPanel(groupUuid));
+    });
 
 const finishLoadingProject =
-  (project: GroupContentsResource | string) =>
-  async (dispatch: Dispatch<any>) => {
-    const uuid = typeof project === 'string' ? project : project.uuid;
-    dispatch(openProjectPanel(uuid));
-    dispatch(loadDetailsPanel(uuid));
-    if (typeof project !== 'string') {
-      dispatch(updateResources([project]));
-    }
-  };
+    (project: GroupContentsResource | string) =>
+        async (dispatch: Dispatch<any>) => {
+            const uuid = typeof project === 'string' ? project : project.uuid;
+            dispatch(openProjectPanel(uuid));
+            dispatch(loadDetailsPanel(uuid));
+            if (typeof project !== 'string') {
+                dispatch(updateResources([project]));
+            }
+        };
 
 const loadGroupContentsResource = async (params: {
-  uuid: string;
-  userUuid: string;
-  services: ServiceRepository;
+    uuid: string;
+    userUuid: string;
+    services: ServiceRepository;
 }) => {
-  const filters = new FilterBuilder()
-    .addEqual('uuid', params.uuid)
-    .getFilters();
-  const { items } = await params.services.groupsService.contents(
-    params.userUuid,
-    {
-      filters,
-      recursive: true,
-      includeTrash: true,
-    }
-  );
-  const resource = items.shift();
-  let handler: GroupContentsHandler;
-  if (resource) {
-    handler =
-      (resource.kind === ResourceKind.COLLECTION ||
-        resource.kind === ResourceKind.PROJECT) &&
-      resource.isTrashed
-        ? groupContentsHandlers.TRASHED(resource)
-        : groupContentsHandlers.OWNED(resource);
-  } else {
-    const kind = extractUuidKind(params.uuid);
-    let resource: GroupContentsResource;
-    if (kind === ResourceKind.COLLECTION) {
-      resource = await params.services.collectionService.get(params.uuid);
-    } else if (kind === ResourceKind.PROJECT) {
-      resource = await params.services.projectService.get(params.uuid);
+    const filters = new FilterBuilder()
+        .addEqual('uuid', params.uuid)
+        .getFilters();
+    const { items } = await params.services.groupsService.contents(
+        params.userUuid,
+        {
+            filters,
+            recursive: true,
+            includeTrash: true,
+        }
+    );
+    const resource = items.shift();
+    let handler: GroupContentsHandler;
+    if (resource) {
+        handler =
+            (resource.kind === ResourceKind.COLLECTION ||
+                resource.kind === ResourceKind.PROJECT) &&
+                resource.isTrashed
+                ? groupContentsHandlers.TRASHED(resource)
+                : groupContentsHandlers.OWNED(resource);
     } else {
-      resource = await params.services.containerRequestService.get(params.uuid);
+        const kind = extractUuidKind(params.uuid);
+        let resource: GroupContentsResource;
+        if (kind === ResourceKind.COLLECTION) {
+            resource = await params.services.collectionService.get(params.uuid);
+        } else if (kind === ResourceKind.PROJECT) {
+            resource = await params.services.projectService.get(params.uuid);
+        } else {
+            resource = await params.services.containerRequestService.get(params.uuid);
+        }
+        handler = groupContentsHandlers.SHARED(resource);
     }
-    handler = groupContentsHandlers.SHARED(resource);
-  }
-  return (
-    cases: MatchCases<
-      typeof groupContentsHandlersRecord,
-      GroupContentsHandler,
-      void
-    >
-  ) => groupContentsHandlers.match(handler, cases);
+    return (
+        cases: MatchCases<
+            typeof groupContentsHandlersRecord,
+            GroupContentsHandler,
+            void
+        >
+    ) => groupContentsHandlers.match(handler, cases);
 };
 
 const groupContentsHandlersRecord = {
-  TRASHED: ofType<GroupContentsResource>(),
-  SHARED: ofType<GroupContentsResource>(),
-  OWNED: ofType<GroupContentsResource>(),
+    TRASHED: ofType<GroupContentsResource>(),
+    SHARED: ofType<GroupContentsResource>(),
+    OWNED: ofType<GroupContentsResource>(),
 };
 
 const groupContentsHandlers = unionize(groupContentsHandlersRecord);