;
+ recordId: string;
+ }) => {
+ removeFocusItemFromFocusStackById({
+ focusId: getFieldInputInstanceId({
+ recordId,
+ fieldName: fieldDefinition.metadata.fieldName,
+ }),
+ });
+ };
+
return {
- openFieldInput: openFieldInput,
- closeFieldInput: () => {},
+ openFieldInput,
+ closeFieldInput,
};
};
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiSelectFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiSelectFieldInput.tsx
index d79830c99..a57257559 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiSelectFieldInput.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiSelectFieldInput.tsx
@@ -18,10 +18,10 @@ export const MultiSelectFieldInput = ({
selectableListComponentInstanceId={
SELECT_FIELD_INPUT_SELECTABLE_LIST_COMPONENT_INSTANCE_ID
}
- focusId={getFieldInputInstanceId(
+ focusId={getFieldInputInstanceId({
recordId,
- fieldDefinition.metadata.fieldName,
- )}
+ fieldName: fieldDefinition.metadata.fieldName,
+ })}
options={fieldDefinition.metadata.options}
onCancel={onCancel}
onOptionSelected={persistField}
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationFromManyFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationFromManyFieldInput.tsx
index d36382078..af209a1c2 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationFromManyFieldInput.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationFromManyFieldInput.tsx
@@ -10,11 +10,11 @@ import { FieldContext } from '@/object-record/record-field/contexts/FieldContext
import { useRelationField } from '@/object-record/record-field/meta-types/hooks/useRelationField';
import { useAddNewRecordAndOpenRightDrawer } from '@/object-record/record-field/meta-types/input/hooks/useAddNewRecordAndOpenRightDrawer';
import { useUpdateRelationFromManyFieldInput } from '@/object-record/record-field/meta-types/input/hooks/useUpdateRelationFromManyFieldInput';
-import { getRelationFromManyFieldInputInstanceId } from '@/object-record/record-field/meta-types/input/utils/getRelationFromManyFieldInputInstanceId';
import { recordFieldInputLayoutDirectionComponentState } from '@/object-record/record-field/states/recordFieldInputLayoutDirectionComponentState';
import { FieldDefinition } from '@/object-record/record-field/types/FieldDefinition';
import { FieldInputEvent } from '@/object-record/record-field/types/FieldInputEvent';
import { FieldRelationMetadata } from '@/object-record/record-field/types/FieldMetadata';
+import { getFieldInputInstanceId } from '@/object-record/record-field/utils/getFieldInputInstanceId';
import { MultipleRecordPicker } from '@/object-record/record-picker/multiple-record-picker/components/MultipleRecordPicker';
import { useMultipleRecordPickerPerformSearch } from '@/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerPerformSearch';
import { multipleRecordPickerPickableMorphItemsComponentState } from '@/object-record/record-picker/multiple-record-picker/states/multipleRecordPickerPickableMorphItemsComponentState';
@@ -31,7 +31,7 @@ export const RelationFromManyFieldInput = ({
onSubmit,
}: RelationFromManyFieldInputProps) => {
const { fieldDefinition, recordId } = useContext(FieldContext);
- const recordPickerInstanceId = getRelationFromManyFieldInputInstanceId({
+ const recordPickerInstanceId = getFieldInputInstanceId({
recordId,
fieldName: fieldDefinition.metadata.fieldName,
});
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationToOneFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationToOneFieldInput.tsx
index b8e723e10..f32632f87 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationToOneFieldInput.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/RelationToOneFieldInput.tsx
@@ -3,10 +3,10 @@ import { useRelationField } from '../../hooks/useRelationField';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { useAddNewRecordAndOpenRightDrawer } from '@/object-record/record-field/meta-types/input/hooks/useAddNewRecordAndOpenRightDrawer';
-import { getRelationToOneFieldInputInstanceId } from '@/object-record/record-field/meta-types/input/utils/getRelationToOneFieldInputInstanceId';
import { recordFieldInputLayoutDirectionComponentState } from '@/object-record/record-field/states/recordFieldInputLayoutDirectionComponentState';
import { recordFieldInputLayoutDirectionLoadingComponentState } from '@/object-record/record-field/states/recordFieldInputLayoutDirectionLoadingComponentState';
import { FieldInputEvent } from '@/object-record/record-field/types/FieldInputEvent';
+import { getFieldInputInstanceId } from '@/object-record/record-field/utils/getFieldInputInstanceId';
import { SingleRecordPicker } from '@/object-record/record-picker/single-record-picker/components/SingleRecordPicker';
import { singleRecordPickerSelectedIdComponentState } from '@/object-record/record-picker/single-record-picker/states/singleRecordPickerSelectedIdComponentState';
import { SingleRecordPickerRecord } from '@/object-record/record-picker/single-record-picker/types/SingleRecordPickerRecord';
@@ -29,7 +29,7 @@ export const RelationToOneFieldInput = ({
const persistField = usePersistField();
- const recordPickerInstanceId = getRelationToOneFieldInputInstanceId({
+ const recordPickerInstanceId = getFieldInputInstanceId({
recordId,
fieldName: fieldDefinition.metadata.fieldName,
});
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx
index 83b467d88..ce6454c76 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx
@@ -67,10 +67,10 @@ export const SelectFieldInput = ({
SELECT_FIELD_INPUT_SELECTABLE_LIST_COMPONENT_INSTANCE_ID
}
selectableItemIdArray={optionIds}
- focusId={getFieldInputInstanceId(
+ focusId={getFieldInputInstanceId({
recordId,
- fieldDefinition.metadata.fieldName,
- )}
+ fieldName: fieldDefinition.metadata.fieldName,
+ })}
onEnter={(itemId) => {
const option = filteredOptions.find(
(option) => option.value === itemId,
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RelationFromManyFieldInput.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RelationFromManyFieldInput.stories.tsx
index 701bb4039..ac0702157 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RelationFromManyFieldInput.stories.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RelationFromManyFieldInput.stories.tsx
@@ -18,8 +18,8 @@ import {
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { FieldContext } from '@/object-record/record-field/contexts/FieldContext';
import { useOpenFieldInputEditMode } from '@/object-record/record-field/hooks/useOpenFieldInputEditMode';
-import { getRelationFromManyFieldInputInstanceId } from '@/object-record/record-field/meta-types/input/utils/getRelationFromManyFieldInputInstanceId';
import { RecordFieldComponentInstanceContext } from '@/object-record/record-field/states/contexts/RecordFieldComponentInstanceContext';
+import { getFieldInputInstanceId } from '@/object-record/record-field/utils/getFieldInputInstanceId';
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
import { DropdownHotkeyScope } from '@/ui/layout/dropdown/constants/DropdownHotkeyScope';
import { FieldMetadataType } from 'twenty-shared/types';
@@ -88,7 +88,7 @@ const RelationManyFieldInputWithContext = () => {
{
pushFocusItemToFocusStack({
- focusId: getRelationToOneFieldInputInstanceId({
+ focusId: getFieldInputInstanceId({
recordId: '123',
fieldName: 'Relation',
}),
component: {
type: FocusComponentType.DROPDOWN,
- instanceId: getRelationToOneFieldInputInstanceId({
+ instanceId: getFieldInputInstanceId({
recordId: '123',
fieldName: 'Relation',
}),
@@ -82,7 +82,7 @@ const RelationToOneFieldInputWithContext = ({
hotkeyScope: {
scope: DropdownHotkeyScope.Dropdown,
},
- memoizeKey: getRelationToOneFieldInputInstanceId({
+ memoizeKey: getFieldInputInstanceId({
recordId: '123',
fieldName: 'Relation',
}),
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationFromManyFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationFromManyFieldInput.tsx
index 1f1d8128c..161572174 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationFromManyFieldInput.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationFromManyFieldInput.tsx
@@ -1,9 +1,9 @@
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
-import { getRelationFromManyFieldInputInstanceId } from '@/object-record/record-field/meta-types/input/utils/getRelationFromManyFieldInputInstanceId';
import {
FieldRelationFromManyValue,
FieldRelationValue,
} from '@/object-record/record-field/types/FieldMetadata';
+import { getFieldInputInstanceId } from '@/object-record/record-field/utils/getFieldInputInstanceId';
import { useMultipleRecordPickerOpen } from '@/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerOpen';
import { useMultipleRecordPickerPerformSearch } from '@/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerPerformSearch';
import { multipleRecordPickerPickableMorphItemsComponentState } from '@/object-record/record-picker/multiple-record-picker/states/multipleRecordPickerPickableMorphItemsComponentState';
@@ -33,7 +33,7 @@ export const useOpenRelationFromManyFieldInput = () => {
objectNameSingular: string;
recordId: string;
}) => {
- const recordPickerInstanceId = getRelationFromManyFieldInputInstanceId({
+ const recordPickerInstanceId = getFieldInputInstanceId({
recordId,
fieldName,
});
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationToOneFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationToOneFieldInput.tsx
index 170d72524..9a84935ad 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationToOneFieldInput.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useOpenRelationToOneFieldInput.tsx
@@ -1,8 +1,8 @@
-import { getRelationToOneFieldInputInstanceId } from '@/object-record/record-field/meta-types/input/utils/getRelationToOneFieldInputInstanceId';
import {
FieldRelationToOneValue,
FieldRelationValue,
} from '@/object-record/record-field/types/FieldMetadata';
+import { getFieldInputInstanceId } from '@/object-record/record-field/utils/getFieldInputInstanceId';
import { useSingleRecordPickerOpen } from '@/object-record/record-picker/single-record-picker/hooks/useSingleRecordPickerOpen';
import { singleRecordPickerSelectedIdComponentState } from '@/object-record/record-picker/single-record-picker/states/singleRecordPickerSelectedIdComponentState';
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
@@ -19,7 +19,7 @@ export const useOpenRelationToOneFieldInput = () => {
const openRelationToOneFieldInput = useRecoilCallback(
({ set, snapshot }) =>
({ fieldName, recordId }: { fieldName: string; recordId: string }) => {
- const recordPickerInstanceId = getRelationToOneFieldInputInstanceId({
+ const recordPickerInstanceId = getFieldInputInstanceId({
recordId,
fieldName,
});
@@ -46,7 +46,7 @@ export const useOpenRelationToOneFieldInput = () => {
pushFocusItemToFocusStack({
focusId: recordPickerInstanceId,
component: {
- type: FocusComponentType.OPEN_FIELD_INPUT,
+ type: FocusComponentType.OPENED_FIELD_INPUT,
instanceId: recordPickerInstanceId,
},
// TODO: Remove this once we've fully migrated away from hotkey scopes
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/getRelationFromManyFieldInputInstanceId.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/getRelationFromManyFieldInputInstanceId.ts
deleted file mode 100644
index 1f90109e1..000000000
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/getRelationFromManyFieldInputInstanceId.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const getRelationFromManyFieldInputInstanceId = ({
- recordId,
- fieldName,
-}: {
- recordId: string;
- fieldName: string;
-}): string => {
- return `relation-from-many-field-input-${recordId}-${fieldName}`;
-};
diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/getRelationToOneFieldInputInstanceId.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/getRelationToOneFieldInputInstanceId.ts
deleted file mode 100644
index 2e629f625..000000000
--- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/getRelationToOneFieldInputInstanceId.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const getRelationToOneFieldInputInstanceId = ({
- recordId,
- fieldName,
-}: {
- recordId: string;
- fieldName: string;
-}): string => {
- return `relation-to-one-field-input-${recordId}-${fieldName}`;
-};
diff --git a/packages/twenty-front/src/modules/object-record/record-field/utils/getFieldInputInstanceId.ts b/packages/twenty-front/src/modules/object-record/record-field/utils/getFieldInputInstanceId.ts
index 3a5f0bba9..70c4a1a22 100644
--- a/packages/twenty-front/src/modules/object-record/record-field/utils/getFieldInputInstanceId.ts
+++ b/packages/twenty-front/src/modules/object-record/record-field/utils/getFieldInputInstanceId.ts
@@ -1,6 +1,9 @@
-export const getFieldInputInstanceId = (
- recordId: string,
- fieldName: string,
-) => {
+export const getFieldInputInstanceId = ({
+ recordId,
+ fieldName,
+}: {
+ recordId: string;
+ fieldName: string;
+}) => {
return `${recordId}-${fieldName}`;
};
diff --git a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCell.tsx b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCell.tsx
index 8172584b4..207212802 100644
--- a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCell.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCell.tsx
@@ -1,4 +1,4 @@
-import { useContext } from 'react';
+import { useCallback, useContext } from 'react';
import { FieldDisplay } from '@/object-record/record-field/components/FieldDisplay';
import { FieldInput } from '@/object-record/record-field/components/FieldInput';
@@ -13,10 +13,13 @@ import {
import { useIsFieldInputOnly } from '@/object-record/record-field/hooks/useIsFieldInputOnly';
import { useOpenFieldInputEditMode } from '@/object-record/record-field/hooks/useOpenFieldInputEditMode';
-import { useInlineCell } from '@/object-record/record-inline-cell/hooks/useInlineCell';
+import { RecordFieldComponentInstanceContext } from '@/object-record/record-field/states/contexts/RecordFieldComponentInstanceContext';
+import { isInlineCellInEditModeScopedState } from '@/object-record/record-inline-cell/states/isInlineCellInEditModeScopedState';
import { DEFAULT_CELL_SCOPE } from '@/object-record/record-table/record-table-cell/hooks/useOpenRecordTableCellV2';
+import { useGoBackToPreviousDropdownFocusId } from '@/ui/layout/dropdown/hooks/useGoBackToPreviousDropdownFocusId';
import { currentHotkeyScopeState } from '@/ui/utilities/hotkey/states/internal/currentHotkeyScopeState';
-import { useRecoilCallback } from 'recoil';
+import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow';
+import { useRecoilCallback, useSetRecoilState } from 'recoil';
import { useIcons } from 'twenty-ui/display';
import { RecordInlineCellContainer } from './RecordInlineCellContainer';
import {
@@ -35,16 +38,47 @@ export const RecordInlineCell = ({ loading }: RecordInlineCellProps) => {
recordId,
isCentered,
isDisplayModeFixHeight,
- onOpenEditMode,
- onCloseEditMode,
+ onOpenEditMode: onOpenEditModeFromContext,
+ onCloseEditMode: onCloseEditModeFromContext,
isReadOnly,
} = useContext(FieldContext);
+ const { openFieldInput, closeFieldInput } = useOpenFieldInputEditMode();
+
+ const onOpenEditMode = onOpenEditModeFromContext
+ ? onOpenEditModeFromContext
+ : () => openFieldInput({ fieldDefinition, recordId });
+
+ const onCloseEditMode = useCallback(() => {
+ onCloseEditModeFromContext
+ ? onCloseEditModeFromContext()
+ : closeFieldInput({ fieldDefinition, recordId });
+ }, [onCloseEditModeFromContext, closeFieldInput, fieldDefinition, recordId]);
+
const buttonIcon = useGetButtonIcon();
const isFieldInputOnly = useIsFieldInputOnly();
- const { closeInlineCell } = useInlineCell();
+ const { goBackToPreviousDropdownFocusId } =
+ useGoBackToPreviousDropdownFocusId();
+
+ const recordFieldComponentInstanceId = useAvailableComponentInstanceIdOrThrow(
+ RecordFieldComponentInstanceContext,
+ );
+
+ const setIsInlineCellInEditMode = useSetRecoilState(
+ isInlineCellInEditModeScopedState(recordFieldComponentInstanceId),
+ );
+
+ const closeInlineCell = useCallback(() => {
+ onCloseEditMode();
+ setIsInlineCellInEditMode(false);
+ goBackToPreviousDropdownFocusId();
+ }, [
+ onCloseEditMode,
+ setIsInlineCellInEditMode,
+ goBackToPreviousDropdownFocusId,
+ ]);
const handleEnter: FieldInputEvent = (persistField) => {
persistField();
@@ -94,7 +128,6 @@ export const RecordInlineCell = ({ loading }: RecordInlineCellProps) => {
);
const { getIcon } = useIcons();
- const { openFieldInput, closeFieldInput } = useOpenFieldInputEditMode();
const RecordInlineCellContextValue: RecordInlineCellContextProps = {
readonly: isReadOnly,
@@ -122,9 +155,8 @@ export const RecordInlineCell = ({ loading }: RecordInlineCellProps) => {
isDisplayModeFixHeight: isDisplayModeFixHeight,
editModeContentOnly: isFieldInputOnly,
loading: loading,
- onOpenEditMode:
- onOpenEditMode ?? (() => openFieldInput({ fieldDefinition, recordId })),
- onCloseEditMode: onCloseEditMode ?? (() => closeFieldInput()),
+ onOpenEditMode,
+ onCloseEditMode,
};
return (
diff --git a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellCloseOnCommandMenuOpeningEffect.tsx b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellCloseOnCommandMenuOpeningEffect.tsx
new file mode 100644
index 000000000..c23a83054
--- /dev/null
+++ b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellCloseOnCommandMenuOpeningEffect.tsx
@@ -0,0 +1,14 @@
+import { useInlineCell } from '@/object-record/record-inline-cell/hooks/useInlineCell';
+import { useListenToSidePanelOpening } from '@/ui/layout/right-drawer/hooks/useListenToSidePanelOpening';
+
+// TODO: This is a temporary solution to close the inline cell when the command menu is opened.
+// This is because the useInlineCell hook doesn't work correctly for field inputs when used outside of the field context.
+// We should refactor field inputs, and remove this listener afterwards.
+// TODO: create a new hook useCloseAnyOpenedFieldInput which uses the focus stack to close all the field inputs, and call it inside openCommandMenu
+export const RecordInlineCellCloseOnCommandMenuOpeningEffect = () => {
+ const { closeInlineCell } = useInlineCell();
+
+ useListenToSidePanelOpening(closeInlineCell);
+
+ return null;
+};
diff --git a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx
index fa81021da..59115c498 100644
--- a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx
+++ b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx
@@ -9,6 +9,7 @@ import { getRecordFieldInputId } from '@/object-record/utils/getRecordFieldInput
import { assertFieldMetadata } from '@/object-record/record-field/types/guards/assertFieldMetadata';
import { isFieldText } from '@/object-record/record-field/types/guards/isFieldText';
+import { RecordInlineCellCloseOnCommandMenuOpeningEffect } from '@/object-record/record-inline-cell/components/RecordInlineCellCloseOnCommandMenuOpeningEffect';
import { useInlineCell } from '@/object-record/record-inline-cell/hooks/useInlineCell';
import {
AppTooltip,
@@ -160,6 +161,9 @@ export const RecordInlineCellContainer = () => {
)}
)}
+ {isInlineCellInEditMode && (
+
+ )}
diff --git a/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts b/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts
index 84756f7e2..6ced59938 100644
--- a/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts
+++ b/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts
@@ -2,12 +2,10 @@ import { useContext } from 'react';
import { useRecoilState } from 'recoil';
import { FieldContext } from '@/object-record/record-field/contexts/FieldContext';
-import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope';
import { useInitDraftValueV2 } from '@/object-record/record-field/hooks/useInitDraftValueV2';
import { RecordFieldComponentInstanceContext } from '@/object-record/record-field/states/contexts/RecordFieldComponentInstanceContext';
import { useRecordInlineCellContext } from '@/object-record/record-inline-cell/components/RecordInlineCellContext';
-import { INLINE_CELL_HOTKEY_SCOPE_MEMOIZE_KEY } from '@/object-record/record-inline-cell/constants/InlineCellHotkeyScopeMemoizeKey';
import { getDropdownFocusIdForRecordField } from '@/object-record/utils/getDropdownFocusIdForRecordField';
import { useGoBackToPreviousDropdownFocusId } from '@/ui/layout/dropdown/hooks/useGoBackToPreviousDropdownFocusId';
import { useSetActiveDropdownFocusIdAndMemorizePrevious } from '@/ui/layout/dropdown/hooks/useSetFocusedDropdownIdAndMemorizePrevious';
@@ -35,16 +33,12 @@ export const useInlineCell = (
const { goBackToPreviousDropdownFocusId } =
useGoBackToPreviousDropdownFocusId();
- const { goBackToPreviousHotkeyScope } = usePreviousHotkeyScope();
-
const initFieldInputDraftValue = useInitDraftValueV2();
const closeInlineCell = () => {
onCloseEditMode?.();
setIsInlineCellInEditMode(false);
- goBackToPreviousHotkeyScope(INLINE_CELL_HOTKEY_SCOPE_MEMOIZE_KEY);
-
goBackToPreviousDropdownFocusId();
};
diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useCloseCurrentTableCellInEditMode.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useCloseCurrentTableCellInEditMode.ts
index 175923cea..4540b7fc7 100644
--- a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useCloseCurrentTableCellInEditMode.ts
+++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useCloseCurrentTableCellInEditMode.ts
@@ -27,7 +27,7 @@ export const useCloseCurrentTableCellInEditMode = (recordTableId?: string) => {
goBackToPreviousDropdownFocusId();
removeLastFocusItemFromFocusStackByComponentType({
- componentType: FocusComponentType.OPEN_FIELD_INPUT,
+ componentType: FocusComponentType.OPENED_FIELD_INPUT,
});
};
},
diff --git a/packages/twenty-front/src/modules/ui/utilities/focus/types/FocusComponentType.ts b/packages/twenty-front/src/modules/ui/utilities/focus/types/FocusComponentType.ts
index 65518edfc..0fc4b1618 100644
--- a/packages/twenty-front/src/modules/ui/utilities/focus/types/FocusComponentType.ts
+++ b/packages/twenty-front/src/modules/ui/utilities/focus/types/FocusComponentType.ts
@@ -2,9 +2,11 @@ export enum FocusComponentType {
MODAL = 'modal',
DROPDOWN = 'dropdown',
SIDE_PANEL = 'side-panel',
- OPEN_FIELD_INPUT = 'open-field-input',
+ OPENED_FIELD_INPUT = 'opened-field-input',
PAGE = 'page',
RECORD_TABLE = 'record-table',
RECORD_TABLE_ROW = 'record-table-row',
RECORD_TABLE_CELL = 'record-table-cell',
+ RECORD_BOARD = 'record-board',
+ RECORD_BOARD_CARD = 'record-board-card',
}