From c92a67d2e526a2178646a890f91ce8d979447358 Mon Sep 17 00:00:00 2001 From: Ankit Singh Date: Thu, 25 Jul 2024 00:29:51 +0530 Subject: [PATCH] fix: subscription fixed + added comemnts --- .../react/src/providers/AlephProvider.tsx | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/packages/react/src/providers/AlephProvider.tsx b/packages/react/src/providers/AlephProvider.tsx index 1c267edf..a72dae14 100644 --- a/packages/react/src/providers/AlephProvider.tsx +++ b/packages/react/src/providers/AlephProvider.tsx @@ -42,6 +42,8 @@ export const AlephProvider = ({ const setAddress = useStore(alephStore, (state) => state.setAddress); const currentAddress = useStore(alephStore, (state) => state.address); + // Build and set Nightly Adapter + // Used build instead of buildLazy to fix nightlyAdapter loading issue while fetching supported nigthly wallet list(walletsFromRegistry) useEffect(() => { (async () => { try { @@ -59,7 +61,7 @@ export const AlephProvider = ({ console.log('nightly adapter conencted- ', connectedAdapter); setConnectedAdapter(connectedAdapter); } catch (error) { - console.error('Error fetching data:', error); + console.error('Error Connecting with Nightly:', error); } })(); }, [setConnectedAdapter]); @@ -98,49 +100,46 @@ export const AlephProvider = ({ }, }); - // useEffect(() => { - // console.log('[[[aleph state]]] - ', alephStore.getState()); - // }, [alephStore]); + const { mutateAsync: disconnect } = useMutation({ + mutationKey: ['aleph disconnect'], + mutationFn: async () => { + if (!connectedAdapter) return; + + await connectedAdapter.disconnect(); + setConnectors(connectedAdapter); + console.log('aleph zero disconnected'); + }, + }); + + // Change Account subscription, runs when user changes account useEffect(() => { if (!connectedAdapter) { return; } const handleAccountsUpdate = async () => { - const account = await connectedAdapter?.accounts.get(); + const accounts = await connectedAdapter.accounts.get(); setConnectors(connectedAdapter); - console.log('account --', account); - // if(accout && accout[0].address !== currentAddress) - // setConnectedAdapter(connectedAdapter) + console.log('accounts changed --', accounts); }; + connectedAdapter.accounts.subscribe(handleAccountsUpdate); return () => { connectedAdapter.accounts.subscribe(handleAccountsUpdate)(); }; }, [connectedAdapter, connectedAdapter?.accounts, currentAddress, setConnectedAdapter, setConnectors]); - const { mutateAsync: disconnect } = useMutation({ - mutationKey: ['aleph disconnect'], - mutationFn: async () => { - if (!connectedAdapter) return; - - await connectedAdapter.disconnect(); - setConnectors(connectedAdapter); - - console.log('aleph zero disconnected'); - }, - }); - + // Eager connect when the page reloads useEffect(() => { if ( connectedAdapter && !connectedAdapter?.connected && localStorage.getItem('NIGHTLY_CONNECT_RECENT_WALLET_AlephZero') !== null ) { - console.log('eager connect for aleph zero ...'); - JSON.parse(localStorage.getItem('NIGHTLY_CONNECT_RECENT_WALLET_AlephZero')!)?.walletName ?? + if (localStorage.getItem('NIGHTLY_CONNECT_RECENT_WALLET_AlephZero')) { connect(JSON.parse(localStorage.getItem('NIGHTLY_CONNECT_RECENT_WALLET_AlephZero')!)?.walletName); + } } }, [connect, connectedAdapter]);