diff --git a/packages/core/field/select-field-value.ts b/packages/core/field/select-field-value.ts index b98a0a3cc..bb5e18c46 100644 --- a/packages/core/field/select-field-value.ts +++ b/packages/core/field/select-field-value.ts @@ -4,7 +4,7 @@ import type { FieldValue } from './field.type' import type { ISelectFieldValue } from './select-field.type' export class SelectFieldValue extends ValueObject { - constructor(value: string) { + constructor(value: ISelectFieldValue) { super({ value }) } @@ -16,7 +16,7 @@ export class SelectFieldValue extends ValueObject { return new this(o.id.value) } - get id(): string { + get id(): ISelectFieldValue { return this.props.value } } diff --git a/packages/core/field/select-field.ts b/packages/core/field/select-field.ts index cd59ec3ae..37fad5841 100644 --- a/packages/core/field/select-field.ts +++ b/packages/core/field/select-field.ts @@ -50,6 +50,10 @@ export class SelectField extends BaseField { } createValue(value: ICreateSelectFieldValue): SelectFieldValue { + if (value === null) { + return new SelectFieldValue(null) + } + const option = this.options.getById(value).unwrap() return SelectFieldValue.fromOption(option) diff --git a/packages/core/field/select-field.type.ts b/packages/core/field/select-field.type.ts index 896fe9b79..54fc63c8c 100644 --- a/packages/core/field/select-field.type.ts +++ b/packages/core/field/select-field.type.ts @@ -22,10 +22,10 @@ export const selectFieldQuerySchema = baseFieldQuerySchema.merge(selectTypeObjec }), ) -export const selectFieldValue = optionIdSchema +export const selectFieldValue = optionIdSchema.nullable() export type ISelectFieldValue = z.infer -export const createSelectFieldValue = optionIdSchema +export const createSelectFieldValue = optionIdSchema.nullable() export type ICreateSelectFieldValue = z.infer export const createSelectFieldValue_internal = z