From 819b3c6c0dd0c53dd91f072201c2d7262f8765eb Mon Sep 17 00:00:00 2001 From: nitin <142569587+ehconitin@users.noreply.github.com> Date: Wed, 21 May 2025 15:15:33 +0530 Subject: [PATCH] followup #12033 (#12150) follow up #12033 in #12033, SettingsDataModelFieldRelationForm I changed the the use of objectMetadataItems to activeObjectMetadataItems, which filtered out system objects. The naming was one factor for this confusion Renaming it everywhere to specify that they don't include system objects --------- Co-authored-by: Charles Bochet --- .../GotoHotkeysEffectsProvider.tsx | 8 ++--- ...ndMenuWorkflowSelectTriggerTypeContent.tsx | 5 +-- .../favorites/hooks/useWorkspaceFavorites.ts | 9 ++--- .../hooks/useDefaultHomePagePath.ts | 17 ++++++---- .../NavigationDrawerOpenedSection.tsx | 10 +++--- .../RemoteNavigationDrawerSection.tsx | 10 +++--- .../hooks/useFilteredObjectMetadataItems.ts | 27 ++++++++++----- .../useNonSystemActiveObjectMetadataItems.ts | 20 ----------- .../SettingsDataModelOverviewEffect.tsx | 5 +-- ...ObjectLevelObjectPickerDropdownContent.tsx | 2 +- .../WorkflowEditActionCreateRecord.tsx | 5 +-- .../WorkflowEditActionDeleteRecord.tsx | 7 ++-- .../WorkflowEditActionFindRecords.tsx | 7 ++-- .../WorkflowEditActionUpdateRecord.tsx | 7 ++-- .../WorkflowFormFieldSettingsRecordPicker.tsx | 7 ++-- .../WorkflowEditTriggerManualForm.tsx | 7 ++-- .../getManualTriggerDefaultSettings.test.ts | 4 +-- .../getTriggerDefaultDefinition.test.ts | 16 ++++----- .../utils/getManualTriggerDefaultSettings.ts | 6 ++-- .../utils/getTriggerDefaultDefinition.ts | 10 +++--- .../settings/data-model/SettingsObjects.tsx | 34 ++++++++++++------- 21 files changed, 116 insertions(+), 107 deletions(-) delete mode 100644 packages/twenty-front/src/modules/object-metadata/hooks/useNonSystemActiveObjectMetadataItems.ts diff --git a/packages/twenty-front/src/modules/app/effect-components/GotoHotkeysEffectsProvider.tsx b/packages/twenty-front/src/modules/app/effect-components/GotoHotkeysEffectsProvider.tsx index 2cc96f5158e..636d285fdee 100644 --- a/packages/twenty-front/src/modules/app/effect-components/GotoHotkeysEffectsProvider.tsx +++ b/packages/twenty-front/src/modules/app/effect-components/GotoHotkeysEffectsProvider.tsx @@ -1,5 +1,5 @@ import { GoToHotkeyItemEffect } from '@/app/effect-components/GoToHotkeyItemEffect'; -import { useNonSystemActiveObjectMetadataItems } from '@/object-metadata/hooks/useNonSystemActiveObjectMetadataItems'; +import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems'; import { isNavigationDrawerExpandedState } from '@/ui/navigation/states/isNavigationDrawerExpanded'; import { navigationDrawerExpandedMemorizedState } from '@/ui/navigation/states/navigationDrawerExpandedMemorizedState'; import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState'; @@ -8,8 +8,8 @@ import { useLocation } from 'react-router-dom'; import { useRecoilCallback } from 'recoil'; export const GotoHotkeysEffectsProvider = () => { - const { nonSystemActiveObjectMetadataItems } = - useNonSystemActiveObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const location = useLocation(); @@ -27,7 +27,7 @@ export const GotoHotkeysEffectsProvider = () => { ), }); - return nonSystemActiveObjectMetadataItems.map((objectMetadataItem) => { + return activeNonSystemObjectMetadataItems.map((objectMetadataItem) => { if (!objectMetadataItem.shortcut) { return null; } diff --git a/packages/twenty-front/src/modules/command-menu/pages/workflow/trigger-type/components/CommandMenuWorkflowSelectTriggerTypeContent.tsx b/packages/twenty-front/src/modules/command-menu/pages/workflow/trigger-type/components/CommandMenuWorkflowSelectTriggerTypeContent.tsx index 3abd377ad4f..f6e8d934ad5 100644 --- a/packages/twenty-front/src/modules/command-menu/pages/workflow/trigger-type/components/CommandMenuWorkflowSelectTriggerTypeContent.tsx +++ b/packages/twenty-front/src/modules/command-menu/pages/workflow/trigger-type/components/CommandMenuWorkflowSelectTriggerTypeContent.tsx @@ -24,7 +24,8 @@ export const CommandMenuWorkflowSelectTriggerTypeContent = ({ const { getIcon } = useIcons(); const { updateTrigger } = useUpdateWorkflowVersionTrigger({ workflow }); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const setWorkflowSelectedNode = useSetRecoilComponentStateV2( workflowSelectedNodeComponentState, @@ -45,7 +46,7 @@ export const CommandMenuWorkflowSelectTriggerTypeContent = ({ getTriggerDefaultDefinition({ defaultLabel, type, - activeObjectMetadataItems, + activeNonSystemObjectMetadataItems, }), ); diff --git a/packages/twenty-front/src/modules/favorites/hooks/useWorkspaceFavorites.ts b/packages/twenty-front/src/modules/favorites/hooks/useWorkspaceFavorites.ts index 332fd11f5cc..98d9221efe8 100644 --- a/packages/twenty-front/src/modules/favorites/hooks/useWorkspaceFavorites.ts +++ b/packages/twenty-front/src/modules/favorites/hooks/useWorkspaceFavorites.ts @@ -64,16 +64,17 @@ export const useWorkspaceFavorites = () => { }, []), ); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); - const activeObjectMetadataItemsInWorkspaceFavorites = - activeObjectMetadataItems.filter((item) => + const activeNonSystemObjectMetadataItemsInWorkspaceFavorites = + activeNonSystemObjectMetadataItems.filter((item) => favoriteViewObjectMetadataIds.has(item.id), ); return { workspaceFavorites: sortedWorkspaceFavorites, workspaceFavoritesObjectMetadataItems: - activeObjectMetadataItemsInWorkspaceFavorites, + activeNonSystemObjectMetadataItemsInWorkspaceFavorites, }; }; diff --git a/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts b/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts index 5d0c7f410ca..26b245ce505 100644 --- a/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts +++ b/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts @@ -6,13 +6,15 @@ import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState'; import { AppPath } from '@/types/AppPath'; import { useCallback, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; -import { getAppPath } from '~/utils/navigation/getAppPath'; import { isDefined } from 'twenty-shared/utils'; +import { getAppPath } from '~/utils/navigation/getAppPath'; export const useDefaultHomePagePath = () => { const currentUser = useRecoilValue(currentUserState); - const { activeObjectMetadataItems, alphaSortedActiveObjectMetadataItems } = - useFilteredObjectMetadataItems(); + const { + activeNonSystemObjectMetadataItems, + alphaSortedActiveNonSystemObjectMetadataItems, + } = useFilteredObjectMetadataItems(); const prefetchViews = useRecoilValue(prefetchViewsState); const lastVisitedObjectMetadataItemId = useRecoilValue( lastVisitedObjectMetadataItemIdState, @@ -20,11 +22,11 @@ export const useDefaultHomePagePath = () => { const getActiveObjectMetadataItemMatchingId = useCallback( (objectMetadataId: string) => { - return activeObjectMetadataItems.find( + return activeNonSystemObjectMetadataItems.find( (item) => item.id === objectMetadataId, ); }, - [activeObjectMetadataItems], + [activeNonSystemObjectMetadataItems], ); const getFirstView = useCallback( @@ -36,7 +38,8 @@ export const useDefaultHomePagePath = () => { ); const firstObjectPathInfo = useMemo(() => { - const [firstObjectMetadataItem] = alphaSortedActiveObjectMetadataItems; + const [firstObjectMetadataItem] = + alphaSortedActiveNonSystemObjectMetadataItems; if (!isDefined(firstObjectMetadataItem)) { return null; @@ -45,7 +48,7 @@ export const useDefaultHomePagePath = () => { const view = getFirstView(firstObjectMetadataItem?.id); return { objectMetadataItem: firstObjectMetadataItem, view }; - }, [alphaSortedActiveObjectMetadataItems, getFirstView]); + }, [alphaSortedActiveNonSystemObjectMetadataItems, getFirstView]); const defaultObjectPathInfo = useMemo(() => { if (!isDefined(lastVisitedObjectMetadataItemId)) { diff --git a/packages/twenty-front/src/modules/object-metadata/components/NavigationDrawerOpenedSection.tsx b/packages/twenty-front/src/modules/object-metadata/components/NavigationDrawerOpenedSection.tsx index b427fe77744..5538313763d 100644 --- a/packages/twenty-front/src/modules/object-metadata/components/NavigationDrawerOpenedSection.tsx +++ b/packages/twenty-front/src/modules/object-metadata/components/NavigationDrawerOpenedSection.tsx @@ -10,10 +10,10 @@ import { useLingui } from '@lingui/react/macro'; export const NavigationDrawerOpenedSection = () => { const { t } = useLingui(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); - const filteredActiveObjectMetadataItems = activeObjectMetadataItems.filter( - (item) => !item.isRemote, - ); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); + const filteredActiveNonSystemObjectMetadataItems = + activeNonSystemObjectMetadataItems.filter((item) => !item.isRemote); const loading = useIsPrefetchLoading(); @@ -28,7 +28,7 @@ export const NavigationDrawerOpenedSection = () => { return; } - const objectMetadataItem = filteredActiveObjectMetadataItems.find( + const objectMetadataItem = filteredActiveNonSystemObjectMetadataItems.find( (item) => item.namePlural === currentObjectNamePlural || item.nameSingular === currentObjectNameSingular, diff --git a/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx b/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx index fea4f110963..062e4167da0 100644 --- a/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx +++ b/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx @@ -10,10 +10,10 @@ import { isDefined } from 'twenty-shared/utils'; export const RemoteNavigationDrawerSection = () => { const currentUser = useRecoilValue(currentUserState); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); - const filteredActiveObjectMetadataItems = activeObjectMetadataItems.filter( - (item) => item.isRemote, - ); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); + const filteredActiveNonSystemObjectMetadataItems = + activeNonSystemObjectMetadataItems.filter((item) => item.isRemote); const loading = useIsPrefetchLoading(); if (loading && isDefined(currentUser)) { @@ -23,7 +23,7 @@ export const RemoteNavigationDrawerSection = () => { return ( ); diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useFilteredObjectMetadataItems.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useFilteredObjectMetadataItems.ts index 80899b47b69..58a5812581b 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useFilteredObjectMetadataItems.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useFilteredObjectMetadataItems.ts @@ -22,7 +22,7 @@ export const useFilteredObjectMetadataItems = () => { [isWorkflowEnabled], ); - const activeObjectMetadataItems = useMemo( + const activeNonSystemObjectMetadataItems = useMemo( () => objectMetadataItems.filter( ({ isActive, isSystem, nameSingular }) => @@ -31,8 +31,17 @@ export const useFilteredObjectMetadataItems = () => { [isWorkflowToBeFiltered, objectMetadataItems], ); - const alphaSortedActiveObjectMetadataItems = activeObjectMetadataItems.sort( - (a, b) => { + const activeObjectMetadataItems = useMemo( + () => + objectMetadataItems.filter( + ({ isActive, nameSingular }) => + isActive && !isWorkflowToBeFiltered(nameSingular), + ), + [isWorkflowToBeFiltered, objectMetadataItems], + ); + + const alphaSortedActiveNonSystemObjectMetadataItems = + activeNonSystemObjectMetadataItems.sort((a, b) => { if (a.nameSingular < b.nameSingular) { return -1; } @@ -40,15 +49,14 @@ export const useFilteredObjectMetadataItems = () => { return 1; } return 0; - }, - ); + }); - const inactiveObjectMetadataItems = objectMetadataItems.filter( + const inactiveNonSystemObjectMetadataItems = objectMetadataItems.filter( ({ isActive, isSystem }) => !isActive && !isSystem, ); const findActiveObjectMetadataItemByNamePlural = (namePlural: string) => - activeObjectMetadataItems.find( + activeNonSystemObjectMetadataItems.find( (activeObjectMetadataItem) => activeObjectMetadataItem.namePlural === namePlural, ); @@ -64,12 +72,13 @@ export const useFilteredObjectMetadataItems = () => { ); return { + activeNonSystemObjectMetadataItems, activeObjectMetadataItems, findObjectMetadataItemById, findObjectMetadataItemByNamePlural, findActiveObjectMetadataItemByNamePlural, - inactiveObjectMetadataItems, + inactiveNonSystemObjectMetadataItems, objectMetadataItems, - alphaSortedActiveObjectMetadataItems, + alphaSortedActiveNonSystemObjectMetadataItems, }; }; diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useNonSystemActiveObjectMetadataItems.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useNonSystemActiveObjectMetadataItems.ts deleted file mode 100644 index a33b80e1d12..00000000000 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useNonSystemActiveObjectMetadataItems.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; -import { useMemo } from 'react'; -import { useRecoilValue } from 'recoil'; - -export const useNonSystemActiveObjectMetadataItems = () => { - const objectMetadataItems = useRecoilValue(objectMetadataItemsState); - - const nonSystemActiveObjectMetadataItems = useMemo( - () => - objectMetadataItems.filter( - (objectMetadataItem) => - !objectMetadataItem.isSystem && objectMetadataItem.isActive, - ), - [objectMetadataItems], - ); - - return { - nonSystemActiveObjectMetadataItems, - }; -}; diff --git a/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx b/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx index 3a17937d570..758a185b050 100644 --- a/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx @@ -4,8 +4,8 @@ import { Edge, Node } from '@xyflow/react'; import { useEffect } from 'react'; import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems'; -import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { isDefined } from 'twenty-shared/utils'; +import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; type SettingsDataModelOverviewEffectProps = { setEdges: (edges: Edge[]) => void; @@ -17,7 +17,8 @@ export const SettingsDataModelOverviewEffect = ({ setNodes, }: SettingsDataModelOverviewEffectProps) => { const theme = useTheme(); - const { activeObjectMetadataItems: items } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems: items } = + useFilteredObjectMetadataItems(); useEffect(() => { const g = new dagre.graphlib.Graph(); diff --git a/packages/twenty-front/src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelObjectPickerDropdownContent.tsx b/packages/twenty-front/src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelObjectPickerDropdownContent.tsx index 6680f11a404..4946ea543f7 100644 --- a/packages/twenty-front/src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelObjectPickerDropdownContent.tsx +++ b/packages/twenty-front/src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelObjectPickerDropdownContent.tsx @@ -19,7 +19,7 @@ export const SettingsRolePermissionsObjectLevelObjectPickerDropdownContent = ({ }: SettingsRolePermissionsObjectLevelObjectPickerDropdownContentProps) => { const [searchFilter, setSearchFilter] = useState(''); - const { alphaSortedActiveObjectMetadataItems: objectMetadataItems } = + const { alphaSortedActiveNonSystemObjectMetadataItems: objectMetadataItems } = useFilteredObjectMetadataItems(); const { getIcon } = useIcons(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionCreateRecord.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionCreateRecord.tsx index 6073e8bb87c..0f7a0b4f99d 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionCreateRecord.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionCreateRecord.tsx @@ -61,10 +61,11 @@ export const WorkflowEditActionCreateRecord = ({ }: WorkflowEditActionCreateRecordProps) => { const { getIcon } = useIcons(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const availableMetadata: Array> = - activeObjectMetadataItems.map((item) => ({ + activeNonSystemObjectMetadataItems.map((item) => ({ Icon: getIcon(item.icon), label: item.labelPlural, value: item.nameSingular, diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionDeleteRecord.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionDeleteRecord.tsx index 499716e3005..ca2ad12135a 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionDeleteRecord.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionDeleteRecord.tsx @@ -39,10 +39,11 @@ export const WorkflowEditActionDeleteRecord = ({ }: WorkflowEditActionDeleteRecordProps) => { const { getIcon } = useIcons(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const availableMetadata: Array> = - activeObjectMetadataItems.map((item) => ({ + activeNonSystemObjectMetadataItems.map((item) => ({ Icon: getIcon(item.icon), label: item.labelPlural, value: item.nameSingular, @@ -68,7 +69,7 @@ export const WorkflowEditActionDeleteRecord = ({ saveAction(newFormData); }; - const objectNameSingular = activeObjectMetadataItems.find( + const objectNameSingular = activeNonSystemObjectMetadataItems.find( (item) => item.nameSingular === formData.objectName, )?.nameSingular; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFindRecords.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFindRecords.tsx index cb5fdf1afcd..19666b442b5 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFindRecords.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFindRecords.tsx @@ -37,10 +37,11 @@ export const WorkflowEditActionFindRecords = ({ }: WorkflowEditActionFindRecordsProps) => { const { getIcon } = useIcons(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const availableMetadata: Array> = - activeObjectMetadataItems.map((item) => ({ + activeNonSystemObjectMetadataItems.map((item) => ({ Icon: getIcon(item.icon), label: item.labelPlural, value: item.nameSingular, @@ -53,7 +54,7 @@ export const WorkflowEditActionFindRecords = ({ const isFormDisabled = actionOptions.readonly; const selectedObjectMetadataItemNameSingular = - activeObjectMetadataItems.find( + activeNonSystemObjectMetadataItems.find( (item) => item.nameSingular === formData.objectName, )?.nameSingular ?? ''; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionUpdateRecord.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionUpdateRecord.tsx index 4262a127b7b..9e86d303e51 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionUpdateRecord.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionUpdateRecord.tsx @@ -63,10 +63,11 @@ export const WorkflowEditActionUpdateRecord = ({ }: WorkflowEditActionUpdateRecordProps) => { const { getIcon } = useIcons(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const availableMetadata: Array> = - activeObjectMetadataItems.map((item) => ({ + activeNonSystemObjectMetadataItems.map((item) => ({ Icon: getIcon(item.icon), label: item.labelPlural, value: item.nameSingular, @@ -94,7 +95,7 @@ export const WorkflowEditActionUpdateRecord = ({ saveAction(newFormData); }; - const selectedObjectMetadataItem = activeObjectMetadataItems.find( + const selectedObjectMetadataItem = activeNonSystemObjectMetadataItems.find( (item) => item.nameSingular === formData.objectName, ); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx index cdb26700bcf..0618ea4b09a 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsRecordPicker.tsx @@ -27,10 +27,11 @@ export const WorkflowFormFieldSettingsRecordPicker = ({ }: WorkflowFormFieldSettingsRecordPickerProps) => { const { getIcon } = useIcons(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const availableMetadata: Array> = - activeObjectMetadataItems.map((item) => ({ + activeNonSystemObjectMetadataItems.map((item) => ({ Icon: getIcon(item.icon), label: item.labelPlural, value: item.nameSingular, @@ -50,7 +51,7 @@ export const WorkflowFormFieldSettingsRecordPicker = ({ onChange({ ...field, placeholder: `Select a ${ - activeObjectMetadataItems.find( + activeNonSystemObjectMetadataItems.find( (item) => item.nameSingular === updatedObjectName, )?.labelSingular || 'record' }`, diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx index 792951b0080..b4c16fd36cb 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx @@ -36,10 +36,11 @@ export const WorkflowEditTriggerManualForm = ({ const theme = useTheme(); const { getIcon } = useIcons(); - const { activeObjectMetadataItems } = useFilteredObjectMetadataItems(); + const { activeNonSystemObjectMetadataItems } = + useFilteredObjectMetadataItems(); const availableMetadata: Array> = - activeObjectMetadataItems.map((item) => ({ + activeNonSystemObjectMetadataItems.map((item) => ({ label: item.labelPlural, value: item.nameSingular, Icon: getIcon(item.icon), @@ -91,7 +92,7 @@ export const WorkflowEditTriggerManualForm = ({ ...trigger, settings: getManualTriggerDefaultSettings({ availability: updatedTriggerType, - activeObjectMetadataItems, + activeNonSystemObjectMetadataItems, }), }); }} diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getManualTriggerDefaultSettings.test.ts b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getManualTriggerDefaultSettings.test.ts index 0673e0e6a32..4930fe7066e 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getManualTriggerDefaultSettings.test.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getManualTriggerDefaultSettings.test.ts @@ -5,7 +5,7 @@ it('returns settings for a manual trigger that can be activated from any where', expect( getManualTriggerDefaultSettings({ availability: 'EVERYWHERE', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ objectType: undefined, @@ -17,7 +17,7 @@ it('returns settings for a manual trigger that can be activated from any where', expect( getManualTriggerDefaultSettings({ availability: 'WHEN_RECORD_SELECTED', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ objectType: generatedMockObjectMetadataItems[0].nameSingular, diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getTriggerDefaultDefinition.test.ts b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getTriggerDefaultDefinition.test.ts index f59a8c66d57..cc67b165a02 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getTriggerDefaultDefinition.test.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/__tests__/getTriggerDefaultDefinition.test.ts @@ -3,12 +3,12 @@ import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedM import { getTriggerDefaultDefinition } from '../getTriggerDefaultDefinition'; describe('getTriggerDefaultDefinition', () => { - it('throws if the activeObjectMetadataItems list is empty', () => { + it('throws if the activeNonSystemObjectMetadataItems list is empty', () => { expect(() => { getTriggerDefaultDefinition({ defaultLabel: DatabaseTriggerDefaultLabel.RECORD_IS_CREATED, type: 'DATABASE_EVENT', - activeObjectMetadataItems: [], + activeNonSystemObjectMetadataItems: [], }); }).toThrow(); }); @@ -18,7 +18,7 @@ describe('getTriggerDefaultDefinition', () => { getTriggerDefaultDefinition({ defaultLabel: DatabaseTriggerDefaultLabel.RECORD_IS_CREATED, type: 'DATABASE_EVENT', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ type: 'DATABASE_EVENT', @@ -35,7 +35,7 @@ describe('getTriggerDefaultDefinition', () => { getTriggerDefaultDefinition({ defaultLabel: DatabaseTriggerDefaultLabel.RECORD_IS_UPDATED, type: 'DATABASE_EVENT', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ type: 'DATABASE_EVENT', @@ -52,7 +52,7 @@ describe('getTriggerDefaultDefinition', () => { getTriggerDefaultDefinition({ defaultLabel: DatabaseTriggerDefaultLabel.RECORD_IS_DELETED, type: 'DATABASE_EVENT', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ type: 'DATABASE_EVENT', @@ -69,7 +69,7 @@ describe('getTriggerDefaultDefinition', () => { getTriggerDefaultDefinition({ defaultLabel: DatabaseTriggerDefaultLabel.RECORD_IS_CREATED, type: 'DATABASE_EVENT', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ type: 'DATABASE_EVENT', @@ -86,7 +86,7 @@ describe('getTriggerDefaultDefinition', () => { getTriggerDefaultDefinition({ defaultLabel: 'Launch manually', type: 'MANUAL', - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }), ).toStrictEqual({ type: 'MANUAL', @@ -103,7 +103,7 @@ describe('getTriggerDefaultDefinition', () => { getTriggerDefaultDefinition({ defaultLabel: DatabaseTriggerDefaultLabel.RECORD_IS_CREATED, type: 'unknown' as any, - activeObjectMetadataItems: generatedMockObjectMetadataItems, + activeNonSystemObjectMetadataItems: generatedMockObjectMetadataItems, }); }).toThrow('Unknown type: unknown'); }); diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getManualTriggerDefaultSettings.ts b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getManualTriggerDefaultSettings.ts index c729342265f..5b698909a82 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getManualTriggerDefaultSettings.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getManualTriggerDefaultSettings.ts @@ -7,10 +7,10 @@ import { assertUnreachable } from '@/workflow/utils/assertUnreachable'; export const getManualTriggerDefaultSettings = ({ availability, - activeObjectMetadataItems, + activeNonSystemObjectMetadataItems, }: { availability: WorkflowManualTriggerAvailability; - activeObjectMetadataItems: ObjectMetadataItem[]; + activeNonSystemObjectMetadataItems: ObjectMetadataItem[]; }): WorkflowManualTriggerSettings => { switch (availability) { case 'EVERYWHERE': { @@ -21,7 +21,7 @@ export const getManualTriggerDefaultSettings = ({ } case 'WHEN_RECORD_SELECTED': { return { - objectType: activeObjectMetadataItems[0].nameSingular, + objectType: activeNonSystemObjectMetadataItems[0].nameSingular, outputSchema: {}, }; } diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getTriggerDefaultDefinition.ts b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getTriggerDefaultDefinition.ts index 62503fdbf33..eb31ef867cb 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getTriggerDefaultDefinition.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/utils/getTriggerDefaultDefinition.ts @@ -10,13 +10,13 @@ import { getManualTriggerDefaultSettings } from '@/workflow/workflow-trigger/uti export const getTriggerDefaultDefinition = ({ defaultLabel, type, - activeObjectMetadataItems, + activeNonSystemObjectMetadataItems, }: { defaultLabel: string; type: WorkflowTriggerType; - activeObjectMetadataItems: ObjectMetadataItem[]; + activeNonSystemObjectMetadataItems: ObjectMetadataItem[]; }): WorkflowTrigger => { - if (activeObjectMetadataItems.length === 0) { + if (activeNonSystemObjectMetadataItems.length === 0) { throw new Error( 'This function need to receive at least one object metadata item to run.', ); @@ -28,7 +28,7 @@ export const getTriggerDefaultDefinition = ({ type, name: defaultLabel, settings: { - eventName: `${activeObjectMetadataItems[0].nameSingular}.${ + eventName: `${activeNonSystemObjectMetadataItems[0].nameSingular}.${ DATABASE_TRIGGER_TYPES.find( (availableEvent) => availableEvent.defaultLabel === defaultLabel, )?.event @@ -43,7 +43,7 @@ export const getTriggerDefaultDefinition = ({ name: defaultLabel, settings: getManualTriggerDefaultSettings({ availability: 'WHEN_RECORD_SELECTED', - activeObjectMetadataItems, + activeNonSystemObjectMetadataItems, }), }; } diff --git a/packages/twenty-front/src/pages/settings/data-model/SettingsObjects.tsx b/packages/twenty-front/src/pages/settings/data-model/SettingsObjects.tsx index 784158806f9..e36f3260738 100644 --- a/packages/twenty-front/src/pages/settings/data-model/SettingsObjects.tsx +++ b/packages/twenty-front/src/pages/settings/data-model/SettingsObjects.tsx @@ -23,18 +23,18 @@ import styled from '@emotion/styled'; import { Trans, useLingui } from '@lingui/react/macro'; import { isNonEmptyArray } from '@sniptt/guards'; import { useMemo, useState } from 'react'; -import { GET_SETTINGS_OBJECT_TABLE_METADATA } from '~/pages/settings/data-model/constants/SettingsObjectTableMetadata'; -import { SettingsObjectTableItem } from '~/pages/settings/data-model/types/SettingsObjectTableItem'; -import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; -import { Button } from 'twenty-ui/input'; import { H2Title, IconChevronRight, IconPlus, IconSearch, } from 'twenty-ui/display'; +import { Button } from 'twenty-ui/input'; import { Section } from 'twenty-ui/layout'; import { UndecoratedLink } from 'twenty-ui/navigation'; +import { GET_SETTINGS_OBJECT_TABLE_METADATA } from '~/pages/settings/data-model/constants/SettingsObjectTableMetadata'; +import { SettingsObjectTableItem } from '~/pages/settings/data-model/types/SettingsObjectTableItem'; +import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; const StyledIconChevronRight = styled(IconChevronRight)` color: ${({ theme }) => theme.font.color.tertiary}; @@ -52,21 +52,23 @@ export const SettingsObjects = () => { const { deleteOneObjectMetadataItem } = useDeleteOneObjectMetadataItem(); const { updateOneObjectMetadataItem } = useUpdateOneObjectMetadataItem(); - const { activeObjectMetadataItems, inactiveObjectMetadataItems } = - useFilteredObjectMetadataItems(); + const { + activeNonSystemObjectMetadataItems, + inactiveNonSystemObjectMetadataItems, + } = useFilteredObjectMetadataItems(); const { totalCountByObjectMetadataItemNamePlural } = useCombinedGetTotalCount( { objectMetadataItems: [ - ...activeObjectMetadataItems, - ...inactiveObjectMetadataItems, + ...activeNonSystemObjectMetadataItems, + ...inactiveNonSystemObjectMetadataItems, ], }, ); const activeObjectSettingsArray = useMemo( () => - activeObjectMetadataItems.map( + activeNonSystemObjectMetadataItems.map( (objectMetadataItem) => ({ objectMetadataItem, @@ -81,12 +83,15 @@ export const SettingsObjects = () => { ] ?? 0, }) satisfies SettingsObjectTableItem, ), - [activeObjectMetadataItems, totalCountByObjectMetadataItemNamePlural], + [ + activeNonSystemObjectMetadataItems, + totalCountByObjectMetadataItemNamePlural, + ], ); const inactiveObjectSettingsArray = useMemo( () => - inactiveObjectMetadataItems.map( + inactiveNonSystemObjectMetadataItems.map( (objectMetadataItem) => ({ objectMetadataItem, @@ -101,7 +106,10 @@ export const SettingsObjects = () => { ] ?? 0, }) satisfies SettingsObjectTableItem, ), - [inactiveObjectMetadataItems, totalCountByObjectMetadataItemNamePlural], + [ + inactiveNonSystemObjectMetadataItems, + totalCountByObjectMetadataItemNamePlural, + ], ); const sortedActiveObjectSettingsItems = useSortedArray( @@ -211,7 +219,7 @@ export const SettingsObjects = () => { )} )} - {isNonEmptyArray(inactiveObjectMetadataItems) && ( + {isNonEmptyArray(inactiveNonSystemObjectMetadataItems) && ( {filteredInactiveObjectSettingsItems.map( (objectSettingsItem) => (