improve command menu actions ordering

This commit is contained in:
bosiraphael
2024-11-20 16:16:20 +01:00
parent 8c05830dcf
commit 1ba43bbff8
14 changed files with 233 additions and 82 deletions

View File

@@ -1,30 +1,52 @@
import { ActionMenuEntry } from '@/action-menu/types/ActionMenuEntry';
import {
ActionMenuEntry,
ActionMenuEntryScope,
ActionMenuEntryType,
} from '@/action-menu/types/ActionMenuEntry';
import { COMMAND_MENU_COMMANDS } from '@/command-menu/constants/CommandMenuCommands';
import { CommandType } from '@/command-menu/types/Command';
import {
Command,
CommandScope,
CommandType,
} from '@/command-menu/types/Command';
export const computeCommandMenuCommands = (
actionMenuEntries: ActionMenuEntry[],
) => {
): Command[] => {
const commands = Object.values(COMMAND_MENU_COMMANDS);
const actionCommands = actionMenuEntries
?.filter((actionMenuEntry) => actionMenuEntry.type === 'standard')
const actionCommands: Command[] = actionMenuEntries
?.filter(
(actionMenuEntry) =>
actionMenuEntry.type === ActionMenuEntryType.Standard,
)
?.map((actionMenuEntry) => ({
id: actionMenuEntry.key,
label: actionMenuEntry.label,
Icon: actionMenuEntry.Icon,
onCommandClick: actionMenuEntry.onClick,
type: CommandType.StandardAction,
scope:
actionMenuEntry.scope === ActionMenuEntryScope.RecordSelection
? CommandScope.RecordSelection
: CommandScope.Global,
}));
const workflowRunCommands = actionMenuEntries
?.filter((actionMenuEntry) => actionMenuEntry.type === 'workflow-run')
const workflowRunCommands: Command[] = actionMenuEntries
?.filter(
(actionMenuEntry) =>
actionMenuEntry.type === ActionMenuEntryType.WorkflowRun,
)
?.map((actionMenuEntry) => ({
id: actionMenuEntry.key,
label: actionMenuEntry.label,
Icon: actionMenuEntry.Icon,
onCommandClick: actionMenuEntry.onClick,
type: CommandType.WorkflowRun,
scope:
actionMenuEntry.scope === ActionMenuEntryScope.RecordSelection
? CommandScope.RecordSelection
: CommandScope.Global,
}));
return [...commands, ...actionCommands, ...workflowRunCommands];