Complete labelIdentifer, relationPicker first implementation (#2618)

* Fix first column main identifier

* Fixes
This commit is contained in:
Charles Bochet
2023-11-21 18:32:36 +01:00
committed by GitHub
parent dd125ddfcc
commit 726e375616
27 changed files with 165 additions and 91 deletions

View File

@ -90,11 +90,12 @@ export const SettingsObjectFieldPreview = ({
objectMetadataId,
});
const { defaultValue: relationDefaultValue } = useRelationFieldPreview({
relationObjectMetadataId,
skipDefaultValue:
fieldMetadata.type !== FieldMetadataType.Relation || hasValue,
});
const { defaultValue: relationDefaultValue, relationObjectMetadataItem } =
useRelationFieldPreview({
relationObjectMetadataId,
skipDefaultValue:
fieldMetadata.type !== FieldMetadataType.Relation || hasValue,
});
const defaultValue =
fieldMetadata.type === FieldMetadataType.Relation
@ -137,7 +138,7 @@ export const SettingsObjectFieldPreview = ({
<FieldContext.Provider
value={{
entityId,
isMainIdentifier: false,
isLabelIdentifier: false,
fieldDefinition: {
type: parseFieldType(fieldMetadata.type),
iconName: 'FieldIcon',
@ -145,6 +146,8 @@ export const SettingsObjectFieldPreview = ({
label: fieldMetadata.label,
metadata: {
fieldName,
relationObjectMetadataNameSingular:
relationObjectMetadataItem?.nameSingular,
},
},
hotkeyScope: 'field-preview',

View File

@ -26,7 +26,10 @@ export const useFieldPreview = ({
const fieldName = fieldMetadata.id
? objectMetadataItem?.fields.find(({ id }) => id === fieldMetadata.id)?.name
: undefined;
const value = fieldName ? firstRecord?.[fieldName] : undefined;
const value =
fieldMetadata.type !== 'RELATION' && fieldName
? firstRecord?.[fieldName]
: undefined;
return {
entityId: firstRecord?.id || `${objectMetadataId}-no-records`,

View File

@ -1,5 +1,6 @@
import { useObjectMetadataItemForSettings } from '@/object-metadata/hooks/useObjectMetadataItemForSettings';
import { useFindManyObjectRecords } from '@/object-record/hooks/useFindManyObjectRecords';
import { capitalize } from '~/utils/string/capitalize';
export const useRelationFieldPreview = ({
relationObjectMetadataId,
@ -20,6 +21,9 @@ export const useRelationFieldPreview = ({
});
return {
defaultValue: relationObjects?.[0],
relationObjectMetadataItem,
defaultValue: relationObjects?.[0] ?? {
name: capitalize(relationObjectMetadataItem?.nameSingular ?? ''),
},
};
};