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) => (