X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/da8c21590f014d5c94e9f5c26dde76f48b20f9bc..45cfc5acaa27151778f245bce76b027c06698b3d:/src/store/side-panel/side-panel-reducer.ts diff --git a/src/store/side-panel/side-panel-reducer.ts b/src/store/side-panel/side-panel-reducer.ts index 5a45d29590..db1cbe5de5 100644 --- a/src/store/side-panel/side-panel-reducer.ts +++ b/src/store/side-panel/side-panel-reducer.ts @@ -16,19 +16,15 @@ import { columns as favoritePanelColumns } from "../../views/favorite-panel/favo export type SidePanelState = SidePanelItem[]; -export const sidePanelReducer = (state: SidePanelState = sidePanelData, action: SidePanelAction) => { +export const sidePanelReducer = (state: SidePanelState = sidePanelItems, action: SidePanelAction) => { return sidePanelActions.match(action, { TOGGLE_SIDE_PANEL_ITEM_OPEN: itemId => state.map(it => ({...it, open: itemId === it.id && it.open === false})), - TOGGLE_SIDE_PANEL_ITEM_ACTIVE: itemId => - state.map(it => ({...it, active: it.id === itemId})), - RESET_SIDE_PANEL_ACTIVITY: () => - state.map(it => ({...it, active: false })), default: () => state }); }; -export enum SidePanelIdentifiers { +export enum SidePanelId { PROJECTS = "Projects", SHARED_WITH_ME = "SharedWithMe", WORKFLOWS = "Workflows", @@ -37,44 +33,58 @@ export enum SidePanelIdentifiers { TRASH = "Trash" } -export const sidePanelData = [ +export const sidePanelItems = [ { - id: SidePanelIdentifiers.PROJECTS, + id: SidePanelId.PROJECTS, name: "Projects", + url: "/projects", icon: ProjectsIcon, open: false, active: false, margin: true, openAble: true, activeAction: (dispatch: Dispatch, uuid: string) => { - dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(uuid)); dispatch(push(getProjectUrl(uuid))); + dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(uuid)); dispatch(projectPanelActions.SET_COLUMNS({ columns: projectPanelColumns })); dispatch(projectPanelActions.RESET_PAGINATION()); dispatch(projectPanelActions.REQUEST_ITEMS()); } }, { - id: SidePanelIdentifiers.SHARED_WITH_ME, + id: SidePanelId.SHARED_WITH_ME, name: "Shared with me", + url: "/shared", icon: ShareMeIcon, active: false, + activeAction: (dispatch: Dispatch) => { + dispatch(push("/shared")); + } }, { - id: SidePanelIdentifiers.WORKFLOWS, + id: SidePanelId.WORKFLOWS, name: "Workflows", + url: "/workflows", icon: WorkflowIcon, active: false, + activeAction: (dispatch: Dispatch) => { + dispatch(push("/workflows")); + } }, { - id: SidePanelIdentifiers.RECENT_OPEN, + id: SidePanelId.RECENT_OPEN, name: "Recent open", + url: "/recent", icon: RecentIcon, active: false, + activeAction: (dispatch: Dispatch) => { + dispatch(push("/recent")); + } }, { - id: SidePanelIdentifiers.FAVORITES, + id: SidePanelId.FAVORITES, name: "Favorites", + url: "/favorites", icon: FavoriteIcon, active: false, activeAction: (dispatch: Dispatch) => { @@ -85,9 +95,13 @@ export const sidePanelData = [ } }, { - id: SidePanelIdentifiers.TRASH, + id: SidePanelId.TRASH, name: "Trash", + url: "/trash", icon: TrashIcon, active: false, + activeAction: (dispatch: Dispatch) => { + dispatch(push("/trash")); + } } ];