Fix WebGL Context Lost when loading projects due to React Strict Mode unmount
Build and Deploy / build-and-push (push) Successful in 40s
Build and Deploy / build-and-push (push) Successful in 40s
This commit is contained in:
@@ -296,10 +296,10 @@ 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)) {
|
||||||
@@ -310,7 +310,7 @@ export default function Editor() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user