From 4f4bddc615203ff94f0a21138622fb6b68fcfa55 Mon Sep 17 00:00:00 2001 From: Ikechi Date: Fri, 29 Jul 2022 19:51:21 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Persist=20active=20wallet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Layout/OriginalLayout.jsx | 2 +- components/Wallet/Connect/WalletConnect.jsx | 23 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/components/Layout/OriginalLayout.jsx b/components/Layout/OriginalLayout.jsx index 06c48fcfc..f3920f2dd 100644 --- a/components/Layout/OriginalLayout.jsx +++ b/components/Layout/OriginalLayout.jsx @@ -14,8 +14,8 @@ import TradeHistory from '@/components/Asset/TradeHistory' // import Typography from '@mui/material/Typography' import Wallet from '@/components/Wallet/Connect/WalletConnect' import styled from '@emotion/styled' - import { useAlgodex } from '@algodex/algodex-hooks' + // import useTranslation from 'next-translate/useTranslation' // import { Typography, Typography } from '@/components/Typography' diff --git a/components/Wallet/Connect/WalletConnect.jsx b/components/Wallet/Connect/WalletConnect.jsx index 8b215ab1b..f6eae51a7 100644 --- a/components/Wallet/Connect/WalletConnect.jsx +++ b/components/Wallet/Connect/WalletConnect.jsx @@ -184,6 +184,7 @@ export function WalletView(props) { }) //You may want to filter by active address array to avoid rehydration? localStorage.setItem('addresses', JSON.stringify(remainingAddresses)) + setAddresses(remainingAddresses) if (remainingAddresses.length === 0) { dispatcher('signOut', { @@ -192,6 +193,7 @@ export function WalletView(props) { setSignedIn(false) } // setActiveWallet(remainingAddresses[0] || null) + persistActiveWallet(remainingAddresses[0] || addresses[0] || {}) } const peraDisconnect = (targetWallet) => { @@ -206,6 +208,7 @@ export function WalletView(props) { type: 'wallet' }) setSignedIn(false) + persistActiveWallet(remainingAddresses[0] || addresses[0] || {}) // setActiveWallet(remainingAddresses[0]) } if (typeof targetWallet.connector.killSession !== 'undefined') @@ -241,6 +244,18 @@ export function WalletView(props) { // return signedIn ? 'default' : 'primary' // } + const persistActiveWallet = (addr) => { + Object.keys(addr).length > 1 && localStorage.setItem('activeWallet', JSON.stringify(addr)) + } + + // Set Active Wallet when page renders + useEffect(() => { + const activeWallet = JSON.parse(localStorage.getItem('activeWallet')) + if (activeWallet) { + setActiveWallet(activeWallet) + } + }, []) + const isWalletActive = (addr) => { return activeWallet?.address === addr } @@ -250,7 +265,13 @@ export function WalletView(props) { } const handleWalletClick = async (addr) => { - !isWalletActive(addr) && setActiveWallet(addr) + // !isWalletActive(addr) && setActiveWallet(addr) + if (!isWalletActive(addr)) { + setActiveWallet(addr) + console.log(addresses, 'adddresses') + persistActiveWallet(addr) + // localStorage.setItem('activeWallet', JSON.stringify(addr)) + } } const walletsQuery = useAccountsInfo(addresses)