Files
twenty/packages/twenty-front/src/modules/action-menu/actions/utils/getActionConfig.ts
T
Baptiste Devessier c6addc2bb4 Implement basic edition for record page layouts (#15237)
1. Add actions for record page layouts to side panel
2. Support drag-and-drop of widgets


https://github.com/user-attachments/assets/c4cef7c5-08a8-4999-b8a5-e1831cc66709
2025-10-22 10:48:09 +02:00

48 lines
1.9 KiB
TypeScript

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<string, ActionConfig> => {
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;
}
}
};