fix: add disposal on unmount in useClonedObject hook
This commit is contained in:
@@ -1,6 +1,15 @@
|
|||||||
import { useMemo } from "react";
|
import { useEffect, useMemo } from "react";
|
||||||
import type * as THREE from "three";
|
import * as THREE from "three";
|
||||||
|
import { disposeObject3D } from "@/utils/three/dispose";
|
||||||
|
|
||||||
export function useClonedObject<T extends THREE.Object3D>(object: T): T {
|
export function useClonedObject<T extends THREE.Object3D>(object: T): T {
|
||||||
return useMemo(() => object.clone(true) as T, [object]);
|
const clone = useMemo(() => object.clone(true) as T, [object]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
return () => {
|
||||||
|
disposeObject3D(clone);
|
||||||
|
};
|
||||||
|
}, [clone]);
|
||||||
|
|
||||||
|
return clone;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user