13902-ui-move-to-popup
[arvados-workbench2.git] / src / views-components / context-menu / action-sets / project-action-set.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { reset } from "redux-form";
6
7 import { ContextMenuActionSet } from "../context-menu-action-set";
8 import { projectActions } from "../../../store/project/project-action";
9 import { NewProjectIcon, MoveToIcon } from "../../../components/icon/icon";
10 import { ToggleFavoriteAction } from "../actions/favorite-action";
11 import { toggleFavorite } from "../../../store/favorites/favorites-actions";
12 import { favoritePanelActions } from "../../../store/favorite-panel/favorite-panel-action";
13 import { openMoveToDialog } from "../../move-to-dialog/move-to-dialog";
14 import { PROJECT_CREATE_DIALOG } from "../../dialog-create/dialog-project-create";
15
16 export const projectActionSet: ContextMenuActionSet = [[{
17     icon: NewProjectIcon,
18     name: "New project",
19     execute: (dispatch, resource) => {
20         dispatch(reset(PROJECT_CREATE_DIALOG));
21         dispatch(projectActions.OPEN_PROJECT_CREATOR({ ownerUuid: resource.uuid }));
22     }
23 }, {
24     component: ToggleFavoriteAction,
25     execute: (dispatch, resource) => {
26         dispatch<any>(toggleFavorite(resource)).then(() => {
27             dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
28         });
29     }
30 }, {
31     icon: MoveToIcon,
32     name: "Move to",
33     execute: (dispatch) => {
34         dispatch<any>(openMoveToDialog());
35     }
36 },]];