fix: add disposal on unmount in useClonedObject hook

This commit is contained in:
Tom Boullay
2026-05-14 00:15:32 +02:00
parent 5c55f2c7f4
commit 621556b38c
+12 -3
View File
@@ -1,6 +1,15 @@
import { useMemo } from "react";
import type * as THREE from "three";
import { useEffect, useMemo } from "react";
import * as THREE from "three";
import { disposeObject3D } from "@/utils/three/dispose";
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;
}