15768: initial Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox@curii.com>
[arvados.git] / src / components / multiselectToolbar / ms-toolbar-action-filters.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { ResourceKind } from 'models/resource';
6 import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
7 import { collectionActionSet } from 'views-components/context-menu/action-sets/collection-action-set';
8 import { projectActionSet } from 'views-components/context-menu/action-sets/project-action-set';
9 import { processResourceActionSet } from 'views-components/context-menu/action-sets/process-resource-action-set';
10
11 export type TMultiselectActionsFilters = Record<string, [ContextMenuActionSet, Set<string>]>;
12
13 export const contextMenuActionConsts = {
14     MAKE_A_COPY: 'Make a copy',
15     MOVE_TO: 'Move to',
16     TOGGLE_TRASH_ACTION: 'ToggleTrashAction',
17     COPY_TO_CLIPBOARD: 'Copy to clipboard',
18     COPY_AND_RERUN_PROCESS: 'Copy and re-run process',
19     REMOVE: 'Remove',
20 } as const;
21
22 const { MAKE_A_COPY, MOVE_TO, TOGGLE_TRASH_ACTION, COPY_TO_CLIPBOARD, COPY_AND_RERUN_PROCESS, REMOVE } =
23     contextMenuActionConsts;
24
25 const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, TOGGLE_TRASH_ACTION]);
26 const projectMSActionsFilter = new Set([COPY_TO_CLIPBOARD, MOVE_TO, TOGGLE_TRASH_ACTION]);
27 const processResourceMSActionsFilter = new Set([COPY_AND_RERUN_PROCESS, MOVE_TO, REMOVE]);
28
29 const { COLLECTION, PROJECT, PROCESS } = ResourceKind;
30
31 export const multiselectActionsFilters: TMultiselectActionsFilters = {
32     [COLLECTION]: [collectionActionSet, collectionMSActionsFilter],
33     [PROJECT]: [projectActionSet, projectMSActionsFilter],
34     [PROCESS]: [processResourceActionSet, processResourceMSActionsFilter],
35 };