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 2cc96f515..636d285fd 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 3abd377ad..f6e8d934a 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 332fd11f5..98d9221ef 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 5d0c7f410..26b245ce5 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 b427fe777..553831376 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 fea4f1109..062e4167d 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 80899b47b..58a581258 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 a33b80e1d..000000000 --- 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 3a17937d5..758a185b0 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 6680f11a4..4946ea543 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 6073e8bb8..0f7a0b4f9 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 499716e30..ca2ad1213 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 cb5fdf1af..19666b442 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 4262a127b..9e86d303e 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 cdb26700b..0618ea4b0 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 792951b00..b4c16fd36 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 0673e0e6a..4930fe706 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 f59a8c66d..cc67b165a 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 c72934226..5b698909a 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 62503fdbf..eb31ef867 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 784158806..e36f32607 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) => (