diff --git a/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx b/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx
index f2be7ca9d..2aa4b5fdc 100644
--- a/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx
+++ b/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx
@@ -4,6 +4,7 @@ import { getLinkToShowPage } from '@/object-metadata/utils/getLinkToShowPage';
import { useRecordChipData } from '@/object-record/hooks/useRecordChipData';
import { recordIndexOpenRecordInState } from '@/object-record/record-index/states/recordIndexOpenRecordInState';
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
+import { canOpenObjectInSidePanel } from '@/object-record/utils/canOpenObjectInSidePanel';
import { ViewOpenRecordInType } from '@/views/types/ViewOpenRecordInType';
import { MouseEvent } from 'react';
import { useRecoilValue } from 'recoil';
@@ -52,9 +53,11 @@ export const RecordChip = ({
const { openRecordInCommandMenu } = useOpenRecordInCommandMenu();
const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState);
+ const canOpenInSidePanel = canOpenObjectInSidePanel(objectNameSingular);
const isSidePanelViewOpenRecordInType =
- recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL;
+ recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL &&
+ canOpenInSidePanel;
const handleCustomClick = isDefined(onClick)
? onClick
diff --git a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutOpenInContent.tsx b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutOpenInContent.tsx
index 5cebd3ef8..db95410a9 100644
--- a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutOpenInContent.tsx
+++ b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownLayoutOpenInContent.tsx
@@ -1,7 +1,9 @@
import { OBJECT_OPTIONS_DROPDOWN_ID } from '@/object-record/object-options-dropdown/constants/ObjectOptionsDropdownId';
import { useOptionsDropdown } from '@/object-record/object-options-dropdown/hooks/useOptionsDropdown';
import { useUpdateObjectViewOptions } from '@/object-record/object-options-dropdown/hooks/useUpdateObjectViewOptions';
+import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext';
import { recordIndexOpenRecordInState } from '@/object-record/record-index/states/recordIndexOpenRecordInState';
+import { canOpenObjectInSidePanel } from '@/object-record/utils/canOpenObjectInSidePanel';
import { DropdownContent } from '@/ui/layout/dropdown/components/DropdownContent';
import { DropdownMenuHeader } from '@/ui/layout/dropdown/components/DropdownMenuHeader/DropdownMenuHeader';
import { DropdownMenuHeaderLeftComponent } from '@/ui/layout/dropdown/components/DropdownMenuHeader/internal/DropdownMenuHeaderLeftComponent';
@@ -27,6 +29,10 @@ export const ObjectOptionsDropdownLayoutOpenInContent = () => {
const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState);
const { currentView } = useGetCurrentViewOnly();
const { setAndPersistOpenRecordIn } = useUpdateObjectViewOptions();
+ const { objectMetadataItem } = useRecordIndexContextOrThrow();
+ const canOpenInSidePanel = canOpenObjectInSidePanel(
+ objectMetadataItem.nameSingular,
+ );
const selectedItemId = useRecoilComponentValueV2(
selectedItemIdComponentState,
@@ -59,12 +65,15 @@ export const ObjectOptionsDropdownLayoutOpenInContent = () => {
>
+ onEnter={() => {
+ if (!canOpenInSidePanel) {
+ return;
+ }
setAndPersistOpenRecordIn(
ViewOpenRecordInType.SIDE_PANEL,
currentView,
- )
- }
+ );
+ }}
>
{
recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL
}
focused={selectedItemId === ViewOpenRecordInType.SIDE_PANEL}
- onClick={() =>
+ onClick={() => {
+ if (!canOpenInSidePanel) {
+ return;
+ }
+
setAndPersistOpenRecordIn(
ViewOpenRecordInType.SIDE_PANEL,
currentView,
- )
- }
+ );
+ }}
+ disabled={!canOpenInSidePanel}
/>
{
},
);
- if (recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL) {
+ if (
+ recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL &&
+ canOpenObjectInSidePanel(objectNameSingular)
+ ) {
openRecordInCommandMenu({
recordId,
objectNameSingular,
diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewIndexRecord.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewIndexRecord.ts
index 605e7a50e..1532bf584 100644
--- a/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewIndexRecord.ts
+++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewIndexRecord.ts
@@ -6,6 +6,7 @@ import { useBuildRecordInputFromFilters } from '@/object-record/record-table/hoo
import { useRecordTitleCell } from '@/object-record/record-title-cell/hooks/useRecordTitleCell';
import { RecordTitleCellContainerType } from '@/object-record/record-title-cell/types/RecordTitleCellContainerType';
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
+import { canOpenObjectInSidePanel } from '@/object-record/utils/canOpenObjectInSidePanel';
import { AppPath } from '@/types/AppPath';
import { ViewOpenRecordInType } from '@/views/types/ViewOpenRecordInType';
import { useRecoilCallback } from 'recoil';
@@ -47,7 +48,10 @@ export const useCreateNewIndexRecord = ({
...recordInputFromFilters,
...recordInput,
});
- if (recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL) {
+ if (
+ recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL &&
+ canOpenObjectInSidePanel(objectMetadataItem.nameSingular)
+ ) {
openRecordInCommandMenu({
recordId,
objectNameSingular: objectMetadataItem.nameSingular,
diff --git a/packages/twenty-front/src/modules/object-record/utils/canOpenObjectInSidePanel.ts b/packages/twenty-front/src/modules/object-record/utils/canOpenObjectInSidePanel.ts
new file mode 100644
index 000000000..467590589
--- /dev/null
+++ b/packages/twenty-front/src/modules/object-record/utils/canOpenObjectInSidePanel.ts
@@ -0,0 +1,5 @@
+export const canOpenObjectInSidePanel = (objectNameSingular: string) =>
+ !(
+ objectNameSingular === 'workflow' ||
+ objectNameSingular === 'workflowVersion'
+ );
diff --git a/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts b/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts
index 08f9a676b..fa04fd585 100644
--- a/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts
+++ b/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts
@@ -125,6 +125,7 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => {
: undefined,
type: type ?? sourceView.type,
objectMetadataId: sourceView.objectMetadataId,
+ openRecordIn: sourceView.openRecordIn,
});
if (isUndefinedOrNull(newView)) {