баг изчезающие элементы

This commit is contained in:
2025-07-21 05:18:21 +03:00
parent 5defbed5d3
commit ebe73614d8
2 changed files with 15 additions and 3 deletions

View File

@@ -698,7 +698,11 @@ const CanvasSettings: React.FC<CanvasSettingsProps> = ({
interface ElementConstructorProps { interface ElementConstructorProps {
template: Template template: Template
onElementAdd: (element: TemplateElement) => void onElementAdd: (element: TemplateElement) => void
onElementUpdate: (elementId: string, element: TemplateElement) => void // Принимаем частичное обновление элемента, чтобы корректно обновлять только изменённые поля
onElementUpdate: (
elementId: string,
updates: Partial<TemplateElement>
) => void
onElementDelete: (elementId: string) => void onElementDelete: (elementId: string) => void
disabled?: boolean disabled?: boolean
} }

View File

@@ -59,7 +59,7 @@ export const ElementsCreation: FC = () => {
const handleElementUpdate = async ( const handleElementUpdate = async (
elementId: string, elementId: string,
updatedElement: TemplateElement updates: Partial<TemplateElement>
) => { ) => {
if (!selectedTemplate) return if (!selectedTemplate) return
@@ -68,7 +68,15 @@ export const ElementsCreation: FC = () => {
const updatedTemplate = { const updatedTemplate = {
...selectedTemplate, ...selectedTemplate,
elements: selectedTemplate.elements.map(el => elements: selectedTemplate.elements.map(el =>
el.id === elementId ? updatedElement : el el.id === elementId
? {
...el,
// Обновляем только определённые ключи, чтобы не затирать существующие значения `undefined`
...Object.fromEntries(
Object.entries(updates).filter(([, v]) => v !== undefined)
),
}
: el
), ),
updatedAt: new Date(), updatedAt: new Date(),
} }