Fix WebGL Context Lost when loading projects due to React Strict Mode unmount
Build and Deploy / build-and-push (push) Successful in 40s

This commit is contained in:
AI Bot
2026-09-02 17:20:24 +05:30
parent db4981c835
commit faeb473bfc
+13 -13
View File
@@ -296,21 +296,21 @@ export default function Editor() {
}, [blobURLs]); }, [blobURLs]);
// Dispose old model when new one is loaded // Dispose old model when new one is loaded
const prevLoadedModelRef = useRef<THREE.Object3D | null>(null);
useEffect(() => { useEffect(() => {
return () => { if (prevLoadedModelRef.current && prevLoadedModelRef.current !== loadedModel) {
if (loadedModel) { prevLoadedModelRef.current.traverse((child) => {
loadedModel.traverse((child) => { if (child instanceof THREE.Mesh) {
if (child instanceof THREE.Mesh) { child.geometry.dispose();
child.geometry.dispose(); if (Array.isArray(child.material)) {
if (Array.isArray(child.material)) { child.material.forEach(m => m.dispose());
child.material.forEach(m => m.dispose()); } else {
} else { child.material.dispose();
child.material.dispose();
}
} }
}); }
} });
}; }
prevLoadedModelRef.current = loadedModel;
}, [loadedModel]); }, [loadedModel]);
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [importProgress, setImportProgress] = useState(0); const [importProgress, setImportProgress] = useState(0);