Open Bonapara opened 4 days ago
To resolve the issue of the empty identifier preview in Object Settings, follow these steps:
Update useFieldPreview
Hook:
useFieldPreview
hook in /packages/twenty-front/src/modules/settings/data-model/fields/preview/hooks/useFieldPreview.ts
to fetch the first record of the table and return it as fieldPreviewValue
.
const useFieldPreview = ({ fieldMetadataItem, objectMetadataItem, relationObjectMetadataItem }) => {
const { data: records } = useFindManyRecords({ objectMetadataItem });
const firstRecord = records?.[0];
const fieldPreviewValue = firstRecord ? getFieldPreviewValueFromRecord(firstRecord, fieldMetadataItem) : getFieldDefaultPreviewValue({ fieldMetadataItem, objectMetadataItem, relationObjectMetadataItem });
return { entityId, fieldName, fieldPreviewValue, isLabelIdentifier, record: firstRecord };
};
Update SettingsDataModelFieldPreview
Component:
SettingsDataModelFieldPreview
component in /packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelFieldPreview.tsx
to use the updated useFieldPreview
hook.
const { fieldPreviewValue, record } = useFieldPreview({ fieldMetadataItem, objectMetadataItem, relationObjectMetadataItem });
Update SettingsObjectDetail
Component:
SettingsObjectDetail
component in /packages/twenty-front/src/pages/settings/data-model/SettingsObjectDetail.tsx
correctly passes the necessary props to SettingsDataModelFieldPreview
.
<SettingsDataModelFieldPreview fieldMetadataItem={fieldMetadataItem} objectMetadataItem={activeObjectMetadataItem} />
Update getFieldDefaultPreviewValue
Utility:
getFieldDefaultPreviewValue
function in /packages/twenty-front/src/modules/settings/data-model/utils/getFieldDefaultPreviewValue.ts
returns appropriate placeholder content when there are no records.
const getFieldDefaultPreviewValue = ({ fieldMetadataItem }) => {
switch (fieldMetadataItem.type) {
case FieldMetadataType.Text:
return 'Text';
case FieldMetadataType.Number:
return '12345';
default:
return null;
}
};
/packages/twenty-front/src/pages/settings/data-model/SettingsObjectDetail.tsx /packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelFieldPreview.tsx /packages/twenty-front/src/modules/settings/data-model/fields/preview/hooks/useFieldPreview.ts /packages/twenty-front/src/modules/settings/data-model/utils/getFieldDefaultPreviewValue.ts
Current Behavior
In the Object settings, the "Identifier preview" is empty.
Desired Behavior
We should display the first record of the table as a sample in the identifier preview.
If there is no record yet, we should display placeholder content such as "Text" for a text field or "12345" for a number field.