diff --git a/src/component/TemplateManager/ElementConstructor.tsx b/src/component/TemplateManager/ElementConstructor.tsx index a6471b6..5e18728 100644 --- a/src/component/TemplateManager/ElementConstructor.tsx +++ b/src/component/TemplateManager/ElementConstructor.tsx @@ -463,25 +463,34 @@ export const ElementConstructor: React.FC = ({ const [editingElement, setEditingElement] = useState( null ) - const [formData, setFormData] = useState>({ - 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>( + createDefaultFormData() + ) + + const resetForm = () => { + setFormData(createDefaultFormData()) } const handleAddElement = () => { @@ -506,6 +515,7 @@ export const ElementConstructor: React.FC = ({ } 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 = ({ options: formData.options, order: elements.length, layout: defaultLayout, - } + } as TemplateElement onElementAdd(newElement) resetForm() diff --git a/vite.config.ts b/vite.config.ts index 2b95a5f..452375d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -15,7 +15,6 @@ export default defineConfig({ }, server: { host: '0.0.0.0', // Открыть для всех IP адресов - port: 80, // Явно указать порт (по умолчанию 5173) proxy: { '/api': { //192.168.2.66