From f0f400d8f776e8d15c110ead66cab08eba1b8574 Mon Sep 17 00:00:00 2001 From: Linkie Link Date: Wed, 6 Sep 2023 14:33:54 +0200 Subject: [PATCH] fix: added portfolio cases for not having an account (#434) --- src/components/Account/AccountOverview.tsx | 66 ++++++++++++++++--- src/components/Wallet/WalletConnectButton.tsx | 22 +++---- 2 files changed, 66 insertions(+), 22 deletions(-) diff --git a/src/components/Account/AccountOverview.tsx b/src/components/Account/AccountOverview.tsx index 7e62536a..fe8936aa 100644 --- a/src/components/Account/AccountOverview.tsx +++ b/src/components/Account/AccountOverview.tsx @@ -1,19 +1,27 @@ import classNames from 'classnames' -import { Suspense, useMemo } from 'react' +import { Suspense, useCallback, useMemo } from 'react' import AccountBalancesTable from 'components/Account/AccountBalancesTable' import AccountComposition from 'components/Account/AccountComposition' +import AccountCreateFirst from 'components/Account/AccountCreateFirst' +import Button from 'components/Button' import Card from 'components/Card' +import { PlusCircled } from 'components/Icons' import Loading from 'components/Loading' import Text from 'components/Text' -import useAccounts from 'hooks/useAccounts' +import WalletBridges from 'components/Wallet/WalletBridges' +import WalletConnectButton from 'components/Wallet/WalletConnectButton' import useBorrowMarketAssetsTableData from 'hooks/useBorrowMarketAssetsTableData' +import useCurrentWalletBalance from 'hooks/useCurrentWalletBalance' import useLendingMarketAssetsTableData from 'hooks/useLendingMarketAssetsTableData' import useStore from 'store' +import { defaultFee } from 'utils/constants' +import { BN } from 'utils/helpers' function Content() { const address = useStore((s) => s.address) - const { data: account } = useAccounts(address) + const accounts = useStore((s) => s.accounts) + const baseCurrency = useStore((s) => s.baseCurrency) const { availableAssets: borrowAvailableAssets, accountBorrowedAssets } = useBorrowMarketAssetsTableData() const { availableAssets: lendingAvailableAssets, accountLentAssets } = @@ -26,26 +34,64 @@ function Content() { () => [...lendingAvailableAssets, ...accountLentAssets], [lendingAvailableAssets, accountLentAssets], ) + const transactionFeeCoinBalance = useCurrentWalletBalance(baseCurrency.denom) - if (!address) { + const checkHasFunds = useCallback(() => { + return ( + transactionFeeCoinBalance && + BN(transactionFeeCoinBalance.amount).isGreaterThan(defaultFee.amount[0].amount) + ) + }, [transactionFeeCoinBalance]) + + const handleCreateAccountClick = useCallback(() => { + if (!checkHasFunds()) { + useStore.setState({ focusComponent: { component: } }) + return + } + + useStore.setState({ focusComponent: { component: } }) + }, [checkHasFunds]) + + if (!address) return ( - You need to be connected to view the porfolio page + You need to be connected to view the porfolio page. + + + ) + + if (!accounts || accounts.length === 0) + return ( + + + You need to create an Account first. + + ) - } return (
- {account.map((account: Account, index: number) => ( + {accounts.map((account: Account, index: number) => ( ) -} \ No newline at end of file +} diff --git a/src/components/Wallet/WalletConnectButton.tsx b/src/components/Wallet/WalletConnectButton.tsx index 5e3051be..a33905a1 100644 --- a/src/components/Wallet/WalletConnectButton.tsx +++ b/src/components/Wallet/WalletConnectButton.tsx @@ -26,17 +26,15 @@ export default function WalletConnectButton(props: Props) { }, [hasAgreedToTerms]) return ( -
-
+