fix: layer panel collapsible tree + element actions (visibility toggle, delete) + RenderEngine skips invisible elements

This commit is contained in:
2026-06-27 23:59:12 +02:00
parent affa6be151
commit a4371ca3ce
5 changed files with 91 additions and 44 deletions
+16
View File
@@ -331,6 +331,20 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
}
}, [layers, blocks, groups, bgConfig, syncHistory, drawingId, token, collab, activeLayerId]);
const handleToggleElementVisible = useCallback((id: string) => {
setElements((prev) => prev.map((e) => {
if (e.id === id) {
const newEl = { ...e, properties: { ...e.properties, visible: e.properties?.visible === false ? true : false } };
if (token) {
setSavedStatus("Speichert…");
updateElement(token, newEl.id, newEl).then(() => setSavedStatus("gespeichert")).catch(() => setSavedStatus("Fehler"));
}
return newEl;
}
return e;
}));
}, [token]);
const handleElementsDeleted = useCallback((ids: string[]) => {
setElements((prev) => {
const newElements = prev.filter((e) => !ids.includes(e.id));
@@ -980,6 +994,8 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
onRenameLayer={handleRenameLayer}
onDuplicateLayer={handleDuplicateLayer}
onToggleLock={handleToggleLock}
onElementsDeleted={handleElementsDeleted}
onToggleElementVisible={handleToggleElementVisible}
elements={elements}
onRenameBlock={handleRenameBlock}
onDuplicateBlock={handleDuplicateBlock}