import { DASHBOARD_ACTIONS_CONFIG } from '@/action-menu/actions/record-actions/constants/DashboardActionsConfig'; import { DEFAULT_RECORD_ACTIONS_CONFIG } from '@/action-menu/actions/record-actions/constants/DefaultRecordActionsConfig'; import { RECORD_PAGE_LAYOUT_ACTIONS_CONFIG } from '@/action-menu/actions/record-actions/constants/RecordPageLayoutActionsConfig'; import { WORKFLOW_ACTIONS_CONFIG } from '@/action-menu/actions/record-actions/constants/WorkflowActionsConfig'; import { WORKFLOW_RUNS_ACTIONS_CONFIG } from '@/action-menu/actions/record-actions/constants/WorkflowRunsActionsConfig'; import { WORKFLOW_VERSIONS_ACTIONS_CONFIG } from '@/action-menu/actions/record-actions/constants/WorkflowVersionsActionsConfig'; import { type ActionConfig } from '@/action-menu/actions/types/ActionConfig'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { isDefined } from 'twenty-shared/utils'; export const getActionConfig = ({ objectMetadataItem, isRecordPageLayoutEnabled, }: { objectMetadataItem?: ObjectMetadataItem; isRecordPageLayoutEnabled: boolean; }): Record => { if (!isDefined(objectMetadataItem)) { return {}; } switch (objectMetadataItem.nameSingular) { case CoreObjectNameSingular.Dashboard: { return DASHBOARD_ACTIONS_CONFIG; } case CoreObjectNameSingular.Workflow: { return WORKFLOW_ACTIONS_CONFIG; } case CoreObjectNameSingular.WorkflowVersion: { return WORKFLOW_VERSIONS_ACTIONS_CONFIG; } case CoreObjectNameSingular.WorkflowRun: { return WORKFLOW_RUNS_ACTIONS_CONFIG; } case CoreObjectNameSingular.Company: { if (isRecordPageLayoutEnabled) { return RECORD_PAGE_LAYOUT_ACTIONS_CONFIG; } return DEFAULT_RECORD_ACTIONS_CONFIG; } default: { return DEFAULT_RECORD_ACTIONS_CONFIG; } } };