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]);
// Dispose old model when new one is loaded
const prevLoadedModelRef = useRef<THREE.Object3D | null>(null);
useEffect(() => {
return () => {
if (loadedModel) {
loadedModel.traverse((child) => {
if (child instanceof THREE.Mesh) {
child.geometry.dispose();
if (Array.isArray(child.material)) {
child.material.forEach(m => m.dispose());
} else {
child.material.dispose();
}
if (prevLoadedModelRef.current && prevLoadedModelRef.current !== loadedModel) {
prevLoadedModelRef.current.traverse((child) => {
if (child instanceof THREE.Mesh) {
child.geometry.dispose();
if (Array.isArray(child.material)) {
child.material.forEach(m => m.dispose());
} else {
child.material.dispose();
}
});
}
};
}
});
}
prevLoadedModelRef.current = loadedModel;
}, [loadedModel]);
const [isLoading, setIsLoading] = useState(false);
const [importProgress, setImportProgress] = useState(0);