diff --git a/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToNextRecordSingleRecordCommand.tsx b/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToNextRecordSingleRecordCommand.tsx
index 682e00a4371..ec9f32aa631 100644
--- a/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToNextRecordSingleRecordCommand.tsx
+++ b/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToNextRecordSingleRecordCommand.tsx
@@ -1,17 +1,21 @@
import { Command } from '@/command-menu-item/display/components/Command';
-import { useSelectedRecordIdOrThrow } from '@/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrThrow';
+import { useSelectedRecordIdOrNull } from '@/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrNull';
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
import { useRecordShowPagePagination } from '@/object-record/record-show/hooks/useRecordShowPagePagination';
export const NavigateToNextRecordSingleRecordCommand = () => {
const { objectMetadataItem } = useContextStoreObjectMetadataItemOrThrow();
- const recordId = useSelectedRecordIdOrThrow();
+ const recordId = useSelectedRecordIdOrNull();
const { navigateToNextRecord } = useRecordShowPagePagination(
objectMetadataItem.nameSingular,
- recordId,
+ recordId ?? '',
);
+ if (!recordId) {
+ return null;
+ }
+
return ;
};
diff --git a/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToPreviousRecordSingleRecordCommand.tsx b/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToPreviousRecordSingleRecordCommand.tsx
index 15b7e7d0f96..5f4cc85db0a 100644
--- a/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToPreviousRecordSingleRecordCommand.tsx
+++ b/packages/twenty-front/src/modules/command-menu-item/record/single-record/components/NavigateToPreviousRecordSingleRecordCommand.tsx
@@ -1,17 +1,21 @@
import { Command } from '@/command-menu-item/display/components/Command';
-import { useSelectedRecordIdOrThrow } from '@/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrThrow';
+import { useSelectedRecordIdOrNull } from '@/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrNull';
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
import { useRecordShowPagePagination } from '@/object-record/record-show/hooks/useRecordShowPagePagination';
export const NavigateToPreviousRecordSingleRecordCommand = () => {
const { objectMetadataItem } = useContextStoreObjectMetadataItemOrThrow();
- const recordId = useSelectedRecordIdOrThrow();
+ const recordId = useSelectedRecordIdOrNull();
const { navigateToPreviousRecord } = useRecordShowPagePagination(
objectMetadataItem.nameSingular,
- recordId,
+ recordId ?? '',
);
+ if (!recordId) {
+ return null;
+ }
+
return ;
};
diff --git a/packages/twenty-front/src/modules/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrNull.tsx b/packages/twenty-front/src/modules/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrNull.tsx
new file mode 100644
index 00000000000..566bb63b981
--- /dev/null
+++ b/packages/twenty-front/src/modules/command-menu-item/record/single-record/hooks/useSelectedRecordIdOrNull.tsx
@@ -0,0 +1,18 @@
+import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
+import { useAtomComponentStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentStateValue';
+
+export const useSelectedRecordIdOrNull = (): string | null => {
+ const contextStoreTargetedRecordsRule = useAtomComponentStateValue(
+ contextStoreTargetedRecordsRuleComponentState,
+ );
+
+ if (
+ contextStoreTargetedRecordsRule.mode === 'exclusion' ||
+ (contextStoreTargetedRecordsRule.mode === 'selection' &&
+ contextStoreTargetedRecordsRule.selectedRecordIds.length === 0)
+ ) {
+ return null;
+ }
+
+ return contextStoreTargetedRecordsRule.selectedRecordIds[0];
+};