fix: reset default value on field type switch in Settings/Data Model … (#5436)

…field form

Closes #5412
This commit is contained in:
Thaïs
2024-05-22 09:53:15 +02:00
committed by GitHub
parent 48003887ce
commit 944b2b0254
9 changed files with 68 additions and 38 deletions

View File

@ -1,3 +1,5 @@
import { isString } from '@sniptt/guards';
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { getLabelIdentifierFieldMetadataItem } from '@/object-metadata/utils/getLabelIdentifierFieldMetadataItem';
@ -23,17 +25,18 @@ export const getFieldDefaultPreviewValue = ({
relationObjectMetadataItem?: ObjectMetadataItem;
}) => {
if (fieldMetadataItem.type === FieldMetadataType.Select) {
const defaultValue = fieldMetadataItem.defaultValue
const defaultValue = isString(fieldMetadataItem.defaultValue)
? stripSimpleQuotesFromString(fieldMetadataItem.defaultValue)
: null;
return defaultValue ?? fieldMetadataItem.options?.[0]?.value ?? null;
}
if (fieldMetadataItem.type === FieldMetadataType.MultiSelect) {
const defaultValues = fieldMetadataItem.defaultValue?.map(
(defaultValue: `'${string}'`) =>
stripSimpleQuotesFromString(defaultValue),
);
const defaultValues = Array.isArray(fieldMetadataItem.defaultValue)
? fieldMetadataItem.defaultValue?.map((defaultValue: `'${string}'`) =>
stripSimpleQuotesFromString(defaultValue),
)
: null;
return defaultValues?.length
? defaultValues
: fieldMetadataItem.options?.map(({ value }) => value) ?? null;