import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope'; import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope'; import { EditableFieldDefinitionContext } from '../contexts/EditableFieldDefinitionContext'; import { EditableFieldEntityIdContext } from '../contexts/EditableFieldEntityIdContext'; import { FieldRecoilScopeContext } from '../states/recoil-scope-contexts/FieldRecoilScopeContext'; import { genericEntityFieldFamilySelector } from '../states/selectors/genericEntityFieldFamilySelector'; import { FieldDefinition } from '../types/FieldDefinition'; import { FieldRelationMetadata } from '../types/FieldMetadata'; import { EditableField } from './EditableField'; import { GenericEditableRelationFieldDisplayMode } from './GenericEditableRelationFieldDisplayMode'; import { GenericEditableRelationFieldEditMode } from './GenericEditableRelationFieldEditMode'; export const GenericEditableRelationField = () => { const currentEditableFieldEntityId = useContext(EditableFieldEntityIdContext); const currentEditableFieldDefinition = useContext( EditableFieldDefinitionContext, ) as FieldDefinition; const fieldValue = useRecoilValue( genericEntityFieldFamilySelector({ entityId: currentEditableFieldEntityId ?? '', fieldName: currentEditableFieldDefinition ? currentEditableFieldDefinition.metadata.fieldName : '', }), ); return ( } displayModeContent={} isDisplayModeContentEmpty={!fieldValue} isDisplayModeFixHeight /> ); };