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 2cc96f5158..636d285fde 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 3abd377ad4..f6e8d934ad 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 332fd11f5c..98d9221efe 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 5d0c7f410c..26b245ce50 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 b427fe7774..5538313763 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 fea4f11096..062e4167da 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 80899b47b6..58a5812581 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 a33b80e1d1..0000000000 --- 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 3a17937d57..758a185b05 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 6680f11a40..4946ea543f 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 6073e8bb87..0f7a0b4f99 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 499716e300..ca2ad12135 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 cb5fdf1afc..19666b442b 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 4262a127b7..9e86d303e5 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 cdb26700bc..0618ea4b09 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 792951b008..b4c16fd36c 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 0673e0e6a3..4930fe7066 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 f59a8c66d5..cc67b165a0 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 c729342265..5b698909a8 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 62503fdbf3..eb31ef867c 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 784158806f..e36f326073 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) => (