fix: collab sync overwrites blocks with empty array

- collab.blocks sync had no guard against empty arrays
- when project loads, collab syncs empty blocks from server
- this overwrites createDefaultBlocks() with empty array
- added if (collab.blocks.length > 0) guard, same as layers
This commit is contained in:
2026-06-29 16:44:38 +02:00
parent 1b2d6815cb
commit 463aa2ef77
+6 -3
View File
@@ -309,9 +309,12 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
if (!sameLayers) setLayers(collab.layers);
}
const sameBlocks = collab.blocks.length === blocks.length &&
collab.blocks.every((b, i) => b.id === blocks[i]?.id);
if (!sameBlocks) setBlocks(collab.blocks);
// Never overwrite local blocks with empty remote blocks (prevents losing defaultBlocks)
if (collab.blocks.length > 0) {
const sameBlocks = collab.blocks.length === blocks.length &&
collab.blocks.every((b, i) => b.id === blocks[i]?.id);
if (!sameBlocks) setBlocks(collab.blocks);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [collab.elements, collab.layers, collab.blocks, collab.status]);