diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts index bdc5fcb252c5..a71d6ed07819 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts @@ -1,27 +1,35 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; -import { SettingsFieldType } from '@/settings/data-model/types/SettingsFieldType'; +import { isFieldValueEmpty } from '@/object-record/record-field/utils/isFieldValueEmpty'; +import { generateDefaultFieldValue } from '@/object-record/utils/generateDefaultFieldValue'; import { getSettingsFieldTypeConfig } from '@/settings/data-model/utils/getSettingsFieldTypeConfig'; -import { FieldMetadataType } from '~/generated-metadata/graphql'; - -const DEFAULT_NUMBER_PREVIEW_VALUE = 2000; +import { isFieldTypeSupportedInSettings } from '@/settings/data-model/utils/isFieldTypeSupportedInSettings'; +import { isDefined } from '~/utils/isDefined'; export const getFieldPreviewValue = ({ fieldMetadataItem, }: { - fieldMetadataItem: Pick< - FieldMetadataItem, - 'type' | 'defaultValue' - >; + fieldMetadataItem: Pick; }) => { - if (fieldMetadataItem.defaultValue !== undefined && fieldMetadataItem.defaultValue !== null) { - return fieldMetadataItem.defaultValue; + if (!isFieldTypeSupportedInSettings(fieldMetadataItem.type)) return null; + + if ( + !isFieldValueEmpty({ + fieldDefinition: { type: fieldMetadataItem.type }, + fieldValue: fieldMetadataItem.defaultValue, + }) + ) { + return generateDefaultFieldValue(fieldMetadataItem); } - const fieldTypeConfig = getSettingsFieldTypeConfig(fieldMetadataItem.type as SettingsFieldType); - - if (fieldMetadataItem.type === FieldMetadataType.Number) { - return fieldTypeConfig.exampleValue || DEFAULT_NUMBER_PREVIEW_VALUE; + const fieldTypeConfig = getSettingsFieldTypeConfig(fieldMetadataItem.type); + + if ( + isDefined(fieldTypeConfig) && + 'exampleValue' in fieldTypeConfig && + isDefined(fieldTypeConfig.exampleValue) + ) { + return fieldTypeConfig.exampleValue; } - return fieldTypeConfig.exampleValue ?? null; + return null; };