fix(custom-fields) : preserve defaultValue and IDs in piece structure editor

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-03-24 09:10:26 +01:00
parent 1d6c520945
commit 2410ebb7dc
2 changed files with 22 additions and 0 deletions

View File

@@ -81,6 +81,12 @@ const toEditorField = (
type: baseType as PieceModelCustomFieldType,
required: Boolean(input?.required),
optionsText,
defaultValue:
input?.defaultValue !== undefined && input.defaultValue !== null && input.defaultValue !== ''
? String(input.defaultValue)
: null,
...(typeof input?.id === 'string' && input.id ? { id: input.id } : {}),
...(typeof input?.customFieldId === 'string' && input.customFieldId ? { customFieldId: input.customFieldId } : {}),
orderIndex: typeof input?.orderIndex === 'number' ? input.orderIndex : index,
}
}
@@ -164,6 +170,9 @@ const buildPayload = (
if (field.customFieldId) {
payload.customFieldId = field.customFieldId
}
if (field.defaultValue !== undefined && field.defaultValue !== null && field.defaultValue !== '') {
payload.defaultValue = String(field.defaultValue)
}
if (type === 'select') {
const options = normalizeLineEndings(field.optionsText)

View File

@@ -86,6 +86,19 @@ const sanitizePieceCustomFields = (fields: any[]): PieceModelCustomField[] => {
if (options) {
result.options = options
}
const defaultValue =
field?.defaultValue !== undefined && field?.defaultValue !== null && field?.defaultValue !== ''
? String(field.defaultValue)
: null
if (defaultValue !== null) {
result.defaultValue = defaultValue
}
if (typeof field?.id === 'string' && field.id) {
result.id = field.id
}
if (typeof field?.customFieldId === 'string' && field.customFieldId) {
result.customFieldId = field.customFieldId
}
const orderIndex = typeof field?.orderIndex === 'number' ? field.orderIndex : index
result.orderIndex = orderIndex
return result