set mango account load to false if no accounts

This commit is contained in:
saml33 2022-08-16 22:20:53 +10:00
parent 4146efac94
commit 5dd424c8da
3 changed files with 22 additions and 17 deletions

View File

@ -15,6 +15,7 @@ import BounceLoader from './shared/BounceLoader'
import MangoAccountsList from './MangoAccountsList'
import { useWallet } from '@solana/wallet-adapter-react'
import CreateAccountModal from './modals/CreateAccountModal'
import { LinkButton } from './shared/Button'
export const IS_ONBOARDED_KEY = 'isOnboarded'
@ -123,15 +124,26 @@ const Layout = ({ children }: { children: ReactNode }) => {
{mangoAccount ? (
<MangoAccountsList mangoAccount={mangoAccount} />
) : !isMobile ? (
<span className="flex items-center">
🔗<span className="ml-2">{t('connect-helper')}</span>
<ArrowRightIcon className="sideways-bounce ml-2 h-5 w-5 text-th-fgd-1" />
</span>
!connected ? (
<span className="flex items-center">
🔗<span className="ml-2">{t('connect-helper')}</span>
<ArrowRightIcon className="sideways-bounce ml-2 h-5 w-5 text-th-fgd-1" />
</span>
) : (
<div className="flex items-center">
🥭
<LinkButton
onClick={() => setShowFirstAccountModal(true)}
>
<span className="ml-2">{t('create-account')}</span>
</LinkButton>
</div>
)
) : null}
</span>
</div>
<div className="flex items-center space-x-4">
{mangoAccount ? (
{connected ? (
<ConnectedMenu />
) : isOnboarded ? (
<ConnectWalletButton />

View File

@ -23,18 +23,6 @@ const AccountActions = () => {
const [showEditAccountModal, setShowEditAccountModal] = useState(false)
const [showWithdrawModal, setShowWithdrawModal] = useState(false)
const handleCloseMangoAccount = async () => {
const client = mangoStore.getState().client
const mangoAccount = mangoStore.getState().mangoAccount.current
const group = mangoStore.getState().group
if (!mangoAccount || !group) return
try {
const tx = await client.closeMangoAccount(group, mangoAccount)
} catch (e) {
console.error(e)
}
}
return (
<>
<div className="flex space-x-3">

View File

@ -4,6 +4,7 @@ import mangoStore from '../../store/state'
import { Wallet } from '@project-serum/anchor'
const WalletListener = () => {
const set = mangoStore((s) => s.set)
const { wallet, connected, disconnecting } = useWallet()
const mangoAccounts = mangoStore((s) => s.mangoAccounts)
@ -18,6 +19,10 @@ const WalletListener = () => {
wallet.adapter as unknown as Wallet,
mangoAccounts[0].accountNum
)
} else {
set((state) => {
state.mangoAccount.loading = false
})
}
actions.fetchProfilePicture(wallet.adapter as unknown as Wallet)
actions.fetchWalletTokens(wallet.adapter as unknown as Wallet)