From e6026ef97a29168b69b93f235e6529237cd48770 Mon Sep 17 00:00:00 2001 From: Arthur Vivian Date: Thu, 20 Oct 2022 16:32:22 +0100 Subject: [PATCH] Call cleanup on unmount --- src/hooks/useRive.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/hooks/useRive.tsx b/src/hooks/useRive.tsx index 422c73a..cdca3e0 100644 --- a/src/hooks/useRive.tsx +++ b/src/hooks/useRive.tsx @@ -215,6 +215,9 @@ export default function useRive( // on an unmounted component in some rare cases if (canvasRef.current) { setRive(r); + } else { + // If unmounted, cleanup the rive object immediately + r.cleanup(); } }); } else if (canvas === null && canvasRef.current) { @@ -257,12 +260,13 @@ export default function useRive( }, [rive]); /** - * On unmount, stop rive from rendering. + * On unmount, call cleanup to cleanup any WASM generated objects that need + * to be manually destroyed. */ useEffect(() => { return () => { if (rive) { - rive.stop(); + rive.cleanup(); setRive(null); } };