From 3dd72cb69a4cfe845dc6948b58ab08770deda744 Mon Sep 17 00:00:00 2001 From: Stan Goldin <48094744+Lomet@users.noreply.github.com> Date: Tue, 24 Jun 2025 18:05:54 +0300 Subject: [PATCH] feat: cleanup provider listeners --- src/components/Provider.tsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/Provider.tsx b/src/components/Provider.tsx index 4ee3795..86a2955 100644 --- a/src/components/Provider.tsx +++ b/src/components/Provider.tsx @@ -18,12 +18,23 @@ const ThePoolzProvider = ({ children, overrides }: { children: React.ReactNode, await instance.init() setThePoolzInstance(instance) } + init().catch(console.error) - provider - .on("accountsChanged", init) - .on("chainChanged", init) + if (typeof provider?.on === "function") { + provider.on("accountsChanged", init) + provider.on("chainChanged", init) + } + return () => { + if (typeof provider?.removeListener === "function") { + provider.removeListener("accountsChanged", init) + provider.removeListener("chainChanged", init) + } else if (typeof provider?.off === "function") { + provider.off("accountsChanged", init) + provider.off("chainChanged", init) + } + } }, [provider, setThePoolzInstance]) // eslint-disable-line react-hooks/exhaustive-deps return (