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:
@@ -309,9 +309,12 @@ const CADEditor: React.FC<CADEditorProps> = ({ projectId, token, onNavigateBack
|
|||||||
if (!sameLayers) setLayers(collab.layers);
|
if (!sameLayers) setLayers(collab.layers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Never overwrite local blocks with empty remote blocks (prevents losing defaultBlocks)
|
||||||
|
if (collab.blocks.length > 0) {
|
||||||
const sameBlocks = collab.blocks.length === blocks.length &&
|
const sameBlocks = collab.blocks.length === blocks.length &&
|
||||||
collab.blocks.every((b, i) => b.id === blocks[i]?.id);
|
collab.blocks.every((b, i) => b.id === blocks[i]?.id);
|
||||||
if (!sameBlocks) setBlocks(collab.blocks);
|
if (!sameBlocks) setBlocks(collab.blocks);
|
||||||
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [collab.elements, collab.layers, collab.blocks, collab.status]);
|
}, [collab.elements, collab.layers, collab.blocks, collab.status]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user