1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ContextMenuAction } from '../views-components/context-menu/context-menu-action-set';
6 import { ContextMenuActionNames } from 'views-components/context-menu/context-menu-action-set';
12 ADD_TO_PUBLIC_FAVORITES,
16 COPY_AND_RERUN_PROCESS,
17 COPY_ITEM_INTO_EXISTING_COLLECTION,
18 COPY_ITEM_INTO_NEW_COLLECTION,
19 COPY_SELECTED_INTO_EXISTING_COLLECTION,
20 COPY_SELECTED_INTO_SEPARATE_COLLECTIONS,
21 COPY_SELECTED_INTO_NEW_COLLECTION,
34 MOVE_ITEM_INTO_EXISTING_COLLECTION,
35 MOVE_ITEM_INTO_NEW_COLLECTION,
36 MOVE_SELECTED_INTO_EXISTING_COLLECTION,
37 MOVE_SELECTED_INTO_NEW_COLLECTION,
38 MOVE_SELECTED_INTO_SEPARATE_COLLECTIONS,
44 OPEN_WITH_3RD_PARTY_CLIENT,
60 } = ContextMenuActionNames;
62 const processOrder = [VIEW_DETAILS, OPEN_IN_NEW_TAB, OUTPUTS, API_DETAILS, EDIT_PROCESS, COPY_AND_RERUN_PROCESS, MOVE_TO, REMOVE, ADD_TO_FAVORITES, ADD_TO_PUBLIC_FAVORITES];
64 const kindToOrder: Record<string, ContextMenuActionNames[]> = {
65 "ProcessResource": processOrder,
68 export const sortMenuItems = (menuKind:string, menuItems: ContextMenuAction[]) => {
69 const order = kindToOrder[menuKind] || [];
70 const bucketMap = new Map();
71 order.forEach((name) => bucketMap.set(name, null));
72 menuItems.forEach((item) => {if (bucketMap.has(item.name)) bucketMap.set(item.name, item)});
73 console.log(Array.from(bucketMap.values()));