From 621556b38c93832f0f1f7b46a52bb64ce61fa972 Mon Sep 17 00:00:00 2001 From: Tom Boullay Date: Thu, 14 May 2026 00:15:32 +0200 Subject: [PATCH] fix: add disposal on unmount in useClonedObject hook --- src/hooks/three/useClonedObject.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/hooks/three/useClonedObject.ts b/src/hooks/three/useClonedObject.ts index bd7c87a..947ab11 100644 --- a/src/hooks/three/useClonedObject.ts +++ b/src/hooks/three/useClonedObject.ts @@ -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(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; }