фикс создания элементов, не вставляется конфигурация
This commit is contained in:
@@ -463,25 +463,34 @@ export const ElementConstructor: React.FC<ElementConstructorProps> = ({
|
||||
const [editingElement, setEditingElement] = useState<TemplateElement | null>(
|
||||
null
|
||||
)
|
||||
const [formData, setFormData] = useState<Partial<TemplateElement>>({
|
||||
type: 'text',
|
||||
name: '',
|
||||
label: '',
|
||||
targetCells: [],
|
||||
placeholder: '',
|
||||
required: false,
|
||||
options: [],
|
||||
})
|
||||
// Функция для создания дефолтной конфигурации
|
||||
const createDefaultFormData = (type: ElementType = 'text') => {
|
||||
const elementDefinition = getElementDefinition(type)
|
||||
|
||||
const resetForm = () => {
|
||||
setFormData({
|
||||
type: 'text',
|
||||
const baseData = {
|
||||
type,
|
||||
name: '',
|
||||
label: '',
|
||||
targetCells: [],
|
||||
placeholder: '',
|
||||
required: false,
|
||||
options: [],
|
||||
})
|
||||
}
|
||||
|
||||
// Применяем defaultConfig если он есть
|
||||
if (elementDefinition && elementDefinition.defaultConfig) {
|
||||
Object.assign(baseData, elementDefinition.defaultConfig)
|
||||
}
|
||||
|
||||
return baseData
|
||||
}
|
||||
|
||||
const [formData, setFormData] = useState<Partial<TemplateElement>>(
|
||||
createDefaultFormData()
|
||||
)
|
||||
|
||||
const resetForm = () => {
|
||||
setFormData(createDefaultFormData())
|
||||
}
|
||||
|
||||
const handleAddElement = () => {
|
||||
@@ -506,6 +515,7 @@ export const ElementConstructor: React.FC<ElementConstructorProps> = ({
|
||||
}
|
||||
|
||||
const newElement: TemplateElement = {
|
||||
...formData, // Копируем все поля из formData, включая специфичные для элемента
|
||||
id: Date.now().toString(),
|
||||
type: formData.type as ElementType,
|
||||
name: formData.label || '',
|
||||
@@ -516,7 +526,7 @@ export const ElementConstructor: React.FC<ElementConstructorProps> = ({
|
||||
options: formData.options,
|
||||
order: elements.length,
|
||||
layout: defaultLayout,
|
||||
}
|
||||
} as TemplateElement
|
||||
|
||||
onElementAdd(newElement)
|
||||
resetForm()
|
||||
|
||||
Reference in New Issue
Block a user