From 2f7b266e6bf08d24c1d1a6748aa77fa81969aa5a Mon Sep 17 00:00:00 2001 From: Linkie Link Date: Tue, 6 Dec 2022 10:20:22 +0100 Subject: [PATCH] Mp 1671 header (#59) * MP-1674: replaced the logo and added dekstop only nav * MP-1677: borrowCapacity implemented into the SubAccount Nav * MP-1677: adjusted the SubAccount navigation * M1677: fixed the button and SearchInput component * MP-1674: fixed the NavLink component * MP-1674: fixed the SubAccount navigation * tidy: cleaning up the trading view * MP-1674: added withdraw and funding functions * MP-1674: worked on the AccountStats * MP-1671: modal work * MP-1647: improvised CreditAccount expander * tidy: fixed the page structure * MP-1758: finished the SearchInput layout * MP-1759: updated the semicircle graphs * MP-1759: SemiCircle to Gauge * fix: implemented animated numbers * tidy: refactor * MP-1759: added Tooltip to the Gauge * fix: replace animate={true} with animate * fix: fixed the Gauge timing * fix: updated the BorrowCapacity styles * fix: renamed SubAccount to Account * fix: Text should not be a button, Button should be * tidy: format * fix: Text no clicky * fix: replaced all the Text appearances with onClick --- components/Account/AccountStatus.tsx | 80 ++++ components/Account/FundAccountModal.tsx | 213 +++++++++ components/Account/SubAccountNavigation.tsx | 191 ++++++++ components/Account/WithdrawModal.tsx | 428 ++++++++++++++++++ components/Account/index.tsx | 4 + components/BorrowCapacity.tsx | 108 ++--- components/BorrowModal.tsx | 35 +- components/Button.tsx | 62 ++- components/Card.tsx | 2 +- components/ConnectModal.tsx | 6 +- components/CreditManager.tsx | 172 +++++++ components/CreditManager/index.tsx | 167 ------- .../{Number.tsx => FormattedNumber.tsx} | 4 +- components/FundAccountModal.tsx | 220 --------- components/Gauge.tsx | 86 ++++ components/Icons/arrow-back.svg | 2 +- components/Icons/arrow-down.svg | 8 +- components/Icons/arrow-left-line.svg | 6 + components/Icons/arrow-up.svg | 6 + components/Icons/logo.svg | 30 +- components/Icons/mars-protocol.svg | 90 ++++ components/Icons/search.svg | 3 + components/Icons/triangle-down.svg | 3 + components/Layout.tsx | 22 +- components/Modal.tsx | 43 +- components/Navigation.tsx | 233 ---------- components/Navigation/DesktopNavigation.tsx | 80 ++++ components/Navigation/NavLink.tsx | 29 ++ components/Navigation/SearchInput.tsx | 14 + components/Navigation/index.tsx | 3 + components/Navigation/menuTree.ts | 9 + components/Overlay.tsx | 2 +- components/SearchInput.tsx | 25 - components/SemiCircleProgress.tsx | 112 ----- components/TextLink.tsx | 52 ++- components/WithdrawModal.tsx | 356 --------------- hooks/useAccountStats.tsx | 14 +- next.config.js | 9 + pages/borrow.tsx | 4 +- pages/council.tsx | 11 +- pages/earn.tsx | 19 +- pages/index.tsx | 369 --------------- pages/portfolio.tsx | 103 +---- pages/trade.tsx | 26 +- public/{ => images}/bg.svg | 0 public/images/fund-modal-bg.png | Bin 0 -> 215451 bytes stores/useCreditManagerStore.tsx | 2 +- tailwind.config.js | 20 +- yarn.lock | 22 - 49 files changed, 1723 insertions(+), 1782 deletions(-) create mode 100644 components/Account/AccountStatus.tsx create mode 100644 components/Account/FundAccountModal.tsx create mode 100644 components/Account/SubAccountNavigation.tsx create mode 100644 components/Account/WithdrawModal.tsx create mode 100644 components/Account/index.tsx create mode 100644 components/CreditManager.tsx delete mode 100644 components/CreditManager/index.tsx rename components/{Number.tsx => FormattedNumber.tsx} (95%) delete mode 100644 components/FundAccountModal.tsx create mode 100644 components/Gauge.tsx create mode 100644 components/Icons/arrow-left-line.svg create mode 100644 components/Icons/arrow-up.svg create mode 100644 components/Icons/mars-protocol.svg create mode 100644 components/Icons/search.svg create mode 100644 components/Icons/triangle-down.svg delete mode 100644 components/Navigation.tsx create mode 100644 components/Navigation/DesktopNavigation.tsx create mode 100644 components/Navigation/NavLink.tsx create mode 100644 components/Navigation/SearchInput.tsx create mode 100644 components/Navigation/index.tsx create mode 100644 components/Navigation/menuTree.ts delete mode 100644 components/SearchInput.tsx delete mode 100644 components/SemiCircleProgress.tsx delete mode 100644 components/WithdrawModal.tsx delete mode 100644 pages/index.tsx rename public/{ => images}/bg.svg (100%) create mode 100644 public/images/fund-modal-bg.png diff --git a/components/Account/AccountStatus.tsx b/components/Account/AccountStatus.tsx new file mode 100644 index 00000000..eec5ff66 --- /dev/null +++ b/components/Account/AccountStatus.tsx @@ -0,0 +1,80 @@ +import BigNumber from 'bignumber.js' + +import { BorrowCapacity } from 'components/BorrowCapacity' +import Button from 'components/Button' +import FormattedNumber from 'components/FormattedNumber' +import Gauge from 'components/Gauge' +import Text from 'components/Text' +import useAccountStats from 'hooks/useAccountStats' +import useCreditAccounts from 'hooks/useCreditAccounts' +import { chain } from 'utils/chains' +import { formatValue } from 'utils/formatters' + +interface Props { + createCreditAccount: () => void +} + +const AccountStatus = ({ createCreditAccount }: Props) => { + const accountStats = useAccountStats() + const { data: creditAccountsList, isLoading: isLoadingCreditAccounts } = useCreditAccounts() + const hasCreditAccounts = creditAccountsList && creditAccountsList.length > 0 + + if (!hasCreditAccounts) { + return ( + + ) + } + + return ( +
+ {accountStats && ( + <> + + + + + + Current Leverage:{' '} + {formatValue(accountStats.currentLeverage, 0, 2, true, false, 'x')} +
+ Max Leverage: {formatValue(accountStats.maxLeverage, 0, 2, true, false, 'x')} + + } + /> + + + Current Risk: {formatValue(accountStats.risk * 100, 0, 2, true, false, '%')} + + } + /> + + + )} +
+ ) +} +export default AccountStatus diff --git a/components/Account/FundAccountModal.tsx b/components/Account/FundAccountModal.tsx new file mode 100644 index 00000000..33847cf6 --- /dev/null +++ b/components/Account/FundAccountModal.tsx @@ -0,0 +1,213 @@ +import { Switch } from '@headlessui/react' +import BigNumber from 'bignumber.js' +import { useEffect, useMemo, useState } from 'react' +import { toast } from 'react-toastify' +import useLocalStorageState from 'use-local-storage-state' + +import Button from 'components/Button' +import CircularProgress from 'components/CircularProgress' +import MarsProtocolLogo from 'components/Icons/mars-protocol.svg' +import Modal from 'components/Modal' +import Slider from 'components/Slider' +import Text from 'components/Text' +import useDepositCreditAccount from 'hooks/mutations/useDepositCreditAccount' +import useAllBalances from 'hooks/useAllBalances' +import useAllowedCoins from 'hooks/useAllowedCoins' +import useCreditManagerStore from 'stores/useCreditManagerStore' +import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' + +interface Props { + open: boolean + setOpen: (open: boolean) => void +} + +const FundAccountModal = ({ open, setOpen }: Props) => { + const [amount, setAmount] = useState(0) + const [selectedToken, setSelectedToken] = useState('') + + const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) + + const [lendAssets, setLendAssets] = useLocalStorageState(`lendAssets_${selectedAccount}`, { + defaultValue: false, + }) + + const { data: balancesData } = useAllBalances() + const { data: allowedCoinsData, isLoading: isLoadingAllowedCoins } = useAllowedCoins() + const { mutate, isLoading } = useDepositCreditAccount( + selectedAccount || '', + selectedToken, + BigNumber(amount) + .times(10 ** getTokenDecimals(selectedToken)) + .toNumber(), + { + onSuccess: () => { + setAmount(0) + toast.success(`${amount} ${getTokenSymbol(selectedToken)} successfully Deposited`) + setOpen(false) + }, + }, + ) + + useEffect(() => { + if (allowedCoinsData && allowedCoinsData.length > 0) { + // initialize selected token when allowedCoins fetch data is available + setSelectedToken(allowedCoinsData[0]) + } + }, [allowedCoinsData]) + + const walletAmount = useMemo(() => { + if (!selectedToken) return 0 + + return BigNumber(balancesData?.find((balance) => balance.denom === selectedToken)?.amount ?? 0) + .div(10 ** getTokenDecimals(selectedToken)) + .toNumber() + }, [balancesData, selectedToken]) + + const handleValueChange = (value: number) => { + if (value > walletAmount) { + setAmount(walletAmount) + return + } + + setAmount(value) + } + + const maxValue = walletAmount + const percentageValue = isNaN(amount) ? 0 : (amount * 100) / maxValue + + return ( + +
+ {isLoading && ( +
+ +
+ )} + +
+
+ + About + + + Bringing the next generation of video creation to the Metaverse. +
+ Powered by deep-learning. +
+
+
+ +
+
+ +
+ + Account {selectedAccount} + +
+ + Fund Account + + + Transfer assets from your injective wallet to your Mars credit account. If you don’t + have any assets in your injective wallet use the injective bridge to transfer funds to + your injective wallet. + + {isLoadingAllowedCoins ? ( +

Loading...

+ ) : ( + <> +
+
+ + Asset: + + +
+
+ + Amount: + + handleValueChange(e.target.valueAsNumber)} + onBlur={(e) => { + if (e.target.value === '') setAmount(0) + }} + /> +
+
+ + {`In wallet: ${walletAmount.toLocaleString()} ${getTokenSymbol(selectedToken)}`} + + { + const decimal = value[0] / 100 + const tokenDecimals = getTokenDecimals(selectedToken) + // limit decimal precision based on token contract decimals + const newAmount = Number((decimal * maxValue).toFixed(tokenDecimals)) + + setAmount(newAmount) + }} + onMaxClick={() => setAmount(maxValue)} + /> + + )} +
+
+
+ + Lending Assets + + + Lend assets from account to earn yield. + +
+ + + + +
+ +
+
+
+ ) +} + +export default FundAccountModal diff --git a/components/Account/SubAccountNavigation.tsx b/components/Account/SubAccountNavigation.tsx new file mode 100644 index 00000000..b449c2b2 --- /dev/null +++ b/components/Account/SubAccountNavigation.tsx @@ -0,0 +1,191 @@ +import { ExecuteResult } from '@cosmjs/cosmwasm-stargate' +import { UseMutateFunction } from '@tanstack/react-query' +import classNames from 'classnames' +import { useMemo, useState } from 'react' + +import { FundAccountModal, WithdrawModal } from 'components/Account' +import Button from 'components/Button' +import ArrowDown from 'components/Icons/arrow-down.svg' +import ArrowUp from 'components/Icons/arrow-up.svg' +import ChevronDownIcon from 'components/Icons/expand.svg' +import Overlay from 'components/Overlay' +import Text from 'components/Text' + +interface Props { + creditAccountsList: string[] + selectedAccount: string | null + deleteCreditAccount: UseMutateFunction + setSelectedAccount: (id: string) => void + createCreditAccount: () => void +} + +const MAX_VISIBLE_CREDIT_ACCOUNTS = 5 + +const SubAccountNavigation = ({ + creditAccountsList, + createCreditAccount, + deleteCreditAccount, + selectedAccount, + setSelectedAccount, +}: Props) => { + const { firstCreditAccounts, restCreditAccounts } = useMemo(() => { + return { + firstCreditAccounts: creditAccountsList?.slice(0, MAX_VISIBLE_CREDIT_ACCOUNTS) ?? [], + restCreditAccounts: creditAccountsList?.slice(MAX_VISIBLE_CREDIT_ACCOUNTS) ?? [], + } + }, [creditAccountsList]) + + const [showManageMenu, setShowManageMenu] = useState(false) + const [showMoreMenu, setShowMoreMenu] = useState(false) + const [showFundWalletModal, setShowFundWalletModal] = useState(false) + const [showWithdrawModal, setShowWithdrawModal] = useState(false) + + return ( + <> + {firstCreditAccounts.map((account) => ( + + ))} +
+ {restCreditAccounts.length > 0 && ( + <> + + +
+ {restCreditAccounts.map((account) => ( + + ))} +
+
+ + )} +
+
+ + +
+ + Manage + +
+ + +
+
+ + + + +
+
+
+
+ + + + ) +} + +export default SubAccountNavigation diff --git a/components/Account/WithdrawModal.tsx b/components/Account/WithdrawModal.tsx new file mode 100644 index 00000000..9359a513 --- /dev/null +++ b/components/Account/WithdrawModal.tsx @@ -0,0 +1,428 @@ +import { Switch } from '@headlessui/react' +import BigNumber from 'bignumber.js' +import classNames from 'classnames' +import React, { useEffect, useMemo, useState } from 'react' +import { toast } from 'react-toastify' + +import { BorrowCapacity } from 'components/BorrowCapacity' +import Button from 'components/Button' +import CircularProgress from 'components/CircularProgress' +import FormattedNumber from 'components/FormattedNumber' +import Gauge from 'components/Gauge' +import Modal from 'components/Modal' +import Slider from 'components/Slider' +import Text from 'components/Text' +import useWithdrawFunds from 'hooks/mutations/useWithdrawFunds' +import useAccountStats, { AccountStatsAction } from 'hooks/useAccountStats' +import useAllBalances from 'hooks/useAllBalances' +import useCalculateMaxWithdrawAmount from 'hooks/useCalculateMaxWithdrawAmount' +import useCreditAccountPositions from 'hooks/useCreditAccountPositions' +import useMarkets from 'hooks/useMarkets' +import useTokenPrices from 'hooks/useTokenPrices' +import useCreditManagerStore from 'stores/useCreditManagerStore' +import { chain } from 'utils/chains' +import { formatValue } from 'utils/formatters' +import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' +interface Props { + open: boolean + setOpen: (open: boolean) => void +} + +const WithdrawModal = ({ open, setOpen }: Props) => { + const [amount, setAmount] = useState(0) + const [selectedToken, setSelectedToken] = useState('') + const [isBorrowEnabled, setIsBorrowEnabled] = useState(false) + + const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) + const { data: positionsData, isLoading: isLoadingPositions } = useCreditAccountPositions( + selectedAccount ?? '', + ) + + const { data: balancesData } = useAllBalances() + const { data: tokenPrices } = useTokenPrices() + const { data: marketsData } = useMarkets() + + const selectedTokenSymbol = getTokenSymbol(selectedToken) + const selectedTokenDecimals = getTokenDecimals(selectedToken) + + const tokenAmountInCreditAccount = useMemo(() => { + return BigNumber(positionsData?.coins.find((coin) => coin.denom === selectedToken)?.amount ?? 0) + .div(10 ** selectedTokenDecimals) + .toNumber() + }, [positionsData, selectedTokenDecimals, selectedToken]) + + const { actions, borrowAmount, withdrawAmount } = useMemo(() => { + const borrowAmount = + amount > tokenAmountInCreditAccount + ? BigNumber(amount) + .minus(tokenAmountInCreditAccount) + .times(10 ** selectedTokenDecimals) + .toNumber() + : 0 + + const withdrawAmount = BigNumber(amount) + .times(10 ** selectedTokenDecimals) + .toNumber() + + return { + borrowAmount, + withdrawAmount, + actions: [ + { + type: 'borrow', + amount: borrowAmount, + denom: selectedToken, + }, + { + type: 'withdraw', + amount: withdrawAmount, + denom: selectedToken, + }, + ] as AccountStatsAction[], + } + }, [amount, selectedToken, selectedTokenDecimals, tokenAmountInCreditAccount]) + + const accountStats = useAccountStats(actions) + + const { mutate, isLoading } = useWithdrawFunds(withdrawAmount, borrowAmount, selectedToken, { + onSuccess: () => { + setOpen(false) + toast.success(`${amount} ${selectedTokenSymbol} successfully withdrawn`) + }, + }) + + const maxWithdrawAmount = useCalculateMaxWithdrawAmount(selectedToken, isBorrowEnabled) + + const walletAmount = useMemo(() => { + if (!selectedToken) return 0 + + return BigNumber(balancesData?.find((balance) => balance.denom === selectedToken)?.amount ?? 0) + .div(10 ** selectedTokenDecimals) + .toNumber() + }, [balancesData, selectedToken, selectedTokenDecimals]) + + useEffect(() => { + if (positionsData && positionsData.coins.length > 0) { + // initialize selected token when allowedCoins fetch data is available + setSelectedToken(positionsData.coins[0].denom) + } + }, [positionsData]) + + const handleTokenChange = (e: React.ChangeEvent) => { + setSelectedToken(e.target.value) + + if (e.target.value !== selectedToken) setAmount(0) + } + + const handleValueChange = (value: number) => { + if (value > maxWithdrawAmount) { + setAmount(maxWithdrawAmount) + return + } + + setAmount(value) + } + + const handleBorrowChange = () => { + setIsBorrowEnabled((c) => !c) + // reset amount due to max value calculations changing depending on wheter the user is borrowing or not + setAmount(0) + } + + const getTokenTotalUSDValue = (amount: string, denom: string) => { + // early return if prices are not fetched yet + if (!tokenPrices) return 0 + + return ( + BigNumber(amount) + .div(10 ** getTokenDecimals(denom)) + .toNumber() * tokenPrices[denom] + ) + } + + const percentageValue = useMemo(() => { + if (isNaN(amount) || maxWithdrawAmount === 0) return 0 + + return (amount * 100) / maxWithdrawAmount + }, [amount, maxWithdrawAmount]) + + return ( + +
+ {isLoading && ( +
+ +
+ )} + + + Withdraw from Account {selectedAccount} + +
+
+
+
+
+ + Asset: + + +
+
+ + Amount: + + handleValueChange(e.target.valueAsNumber)} + onBlur={(e) => { + if (e.target.value === '') setAmount(0) + }} + /> +
+
+ + Available: {formatValue(maxWithdrawAmount, 0, 4, true, false, false, false, false)} + + { + const decimal = value[0] / 100 + // limit decimal precision based on token contract decimals + const newAmount = Number( + (decimal * maxWithdrawAmount).toFixed(selectedTokenDecimals), + ) + + setAmount(newAmount) + }} + onMaxClick={() => setAmount(maxWithdrawAmount)} + /> +
+
+
+ + Withdraw with borrowing + + + Borrow assets from account to withdraw to your wallet + +
+ + + + +
+
+ +
+
+
+
+ + Account {selectedAccount} + + {accountStats && ( +
+ + + + + + Current Leverage:{' '} + {formatValue(accountStats.currentLeverage, 0, 2, true, false, 'x')} +
+ Max Leverage:{' '} + {formatValue(accountStats.maxLeverage, 0, 2, true, false, 'x')} + + } + /> + + Current Risk: {formatValue(accountStats.risk * 100, 0, 2, true, false, '%')} + + } + /> + +
+ )} +
+
+
+ + Total Position: + + + + + +
+
+ + Total Liabilities: + + + + +
+
+
+ + Balances + + {isLoadingPositions ? ( +
Loading...
+ ) : ( +
+
+ + Asset + + + Value + + + Size + + + APY + +
+ {positionsData?.coins.map((coin) => ( +
+ + {getTokenSymbol(coin.denom)} + + + + + + + + + - + +
+ ))} + {positionsData?.debts.map((coin) => ( +
+ + {getTokenSymbol(coin.denom)} + + + + + + + + + + +
+ ))} +
+ )} +
+
+
+
+
+ ) +} + +export default WithdrawModal diff --git a/components/Account/index.tsx b/components/Account/index.tsx new file mode 100644 index 00000000..57d45d54 --- /dev/null +++ b/components/Account/index.tsx @@ -0,0 +1,4 @@ +export { default as AccountStatus } from './AccountStatus' +export { default as FundAccountModal } from './FundAccountModal' +export { default as SubAccountNavigation } from './SubAccountNavigation' +export { default as WithdrawModal } from './WithdrawModal' diff --git a/components/BorrowCapacity.tsx b/components/BorrowCapacity.tsx index 2f97a76d..107af20c 100644 --- a/components/BorrowCapacity.tsx +++ b/components/BorrowCapacity.tsx @@ -1,7 +1,8 @@ import classNames from 'classnames' import { useEffect, useState } from 'react' -import Number from 'components/Number' +import FormattedNumber from 'components/FormattedNumber' +import Text from 'components/Text' import Tooltip from 'components/Tooltip' interface Props { @@ -13,6 +14,7 @@ interface Props { showPercentageText?: boolean className?: string hideValues?: boolean + decimals?: number } export const BorrowCapacity = ({ @@ -24,42 +26,25 @@ export const BorrowCapacity = ({ showPercentageText = true, className, hideValues, + decimals = 2, }: Props) => { const [percentOfMaxRound, setPercentOfMaxRound] = useState(0) const [percentOfMaxRange, setPercentOfMaxRange] = useState(0) - const [percentOfMaxMargin, setPercentOfMaxMargin] = useState('10px') const [limitPercentOfMax, setLimitPercentOfMax] = useState(0) - const [timer, setTimer] = useState>() useEffect( () => { - clearTimeout(timer) - const percent = max === 0 ? 0 : (balance / max) * 100 - const delta = percent - percentOfMaxRound - const startingPoint = percentOfMaxRound - if (max === 0) { - setPercentOfMaxMargin('10px') setPercentOfMaxRound(0) setPercentOfMaxRange(0) setLimitPercentOfMax(0) return } - const pOfMax = +((balance / max) * 100).toFixed(2) - setPercentOfMaxRound(+(Math.round(pOfMax * 100) / 100).toFixed(1)) + const pOfMax = +((balance / max) * 100) + setPercentOfMaxRound(+(Math.round(pOfMax * 100) / 100)) setPercentOfMaxRange(Math.min(Math.max(pOfMax, 0), 100)) setLimitPercentOfMax((limit / max) * 100) - - for (let i = 0; i < 20; i++) { - setTimer( - setTimeout(() => { - const currentPercentOfMax = startingPoint + (delta / 20) * i - setPercentOfMaxMargin(currentPercentOfMax > 15 ? '-60px' : '10px') - }, 50 * (i + 1)), - ) - } - return () => clearTimeout(timer) }, // eslint-disable-next-line react-hooks/exhaustive-deps [balance, max], ) @@ -82,61 +67,64 @@ export const BorrowCapacity = ({ limitPercentOfMax ? 'opacity-60' : 'opacity-0', )} > - + )} - -
-
-
-
- -
+ Borrow Capacity Tooltip}> +
+
+
-
-
- {showPercentageText ? ( - + +
+
- {max !== 0 && ( - - )} - - ) : null} +
+
+ +
+ {showPercentageText ? ( + + {max !== 0 && ( + + )} + + ) : null} +
{!hideValues && (
- + of - +
)}
diff --git a/components/BorrowModal.tsx b/components/BorrowModal.tsx index b4e52a9d..998ac294 100644 --- a/components/BorrowModal.tsx +++ b/components/BorrowModal.tsx @@ -7,8 +7,8 @@ import { toast } from 'react-toastify' import Button from 'components/Button' import CircularProgress from 'components/CircularProgress' import ContainerSecondary from 'components/ContainerSecondary' +import Gauge from 'components/Gauge' import ProgressBar from 'components/ProgressBar' -import SemiCircleProgress from 'components/SemiCircleProgress' import Slider from 'components/Slider' import Text from 'components/Text' import Tooltip from 'components/Tooltip' @@ -21,7 +21,7 @@ import useMarkets from 'hooks/useMarkets' import useTokenPrices from 'hooks/useTokenPrices' import useCreditManagerStore from 'stores/useCreditManagerStore' import { chain } from 'utils/chains' -import { formatCurrency } from 'utils/formatters' +import { formatCurrency, formatValue } from 'utils/formatters' import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' type Props = { @@ -261,14 +261,29 @@ const BorrowModal = ({ show, onClose, tokenDenom }: Props) => { .toNumber(), )}

- {/* TOOLTIP */} -
- -
- + + Current Leverage:{' '} + {formatValue(accountStats.currentLeverage, 0, 2, true, false, 'x')} +
+ Max Leverage:{' '} + {formatValue(accountStats.maxLeverage, 0, 2, true, false, 'x')} + + } + /> + + Current Risk:{' '} + {formatValue(accountStats.risk * 100, 0, 2, true, false, '%')} + + } + />
)} diff --git a/components/Button.tsx b/components/Button.tsx index 436dd35e..24e1b567 100644 --- a/components/Button.tsx +++ b/components/Button.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames' -import React, { ReactNode } from 'react' +import React, { LegacyRef, ReactNode } from 'react' import CircularProgress from 'components/CircularProgress' @@ -12,17 +12,17 @@ interface Props { showProgressIndicator?: boolean size?: 'small' | 'medium' | 'large' text?: string | ReactNode - variant?: 'solid' | 'transparent' | 'round' + variant?: 'solid' | 'transparent' | 'round' | 'text' onClick?: (e: React.MouseEvent) => void } const colorClasses = { primary: - 'border-none bg-primary hover:bg-primary-highlight active:bg-primary-highlight-10 focus:bg-primary-highlight', + 'border-none text-white bg-primary hover:bg-primary-highlight active:bg-primary-highlight-10 focus:bg-primary-highlight', secondary: - 'border-none bg-secondary hover:bg-secondary-highlight active:bg-secondary-highlight-10 focus:bg-secondary-highlight', + 'border-none text-white bg-secondary hover:bg-secondary-highlight active:bg-secondary-highlight-10 focus:bg-secondary-highlight', tertiary: - 'border bg-secondary-dark/60 border-white/60 hover:bg-secondary-dark hover:border-white active:bg-secondary-dark-10 active:border-white focus:bg-secondary-dark focus:border-white', + 'border text-white bg-secondary-dark/60 border-white/60 hover:bg-secondary-dark hover:border-white active:bg-secondary-dark-10 active:border-white focus:bg-secondary-dark focus:border-white', quaternary: 'border bg-transparent text-white/60 border-transparent hover:text-white hover:border-white active:text-white active:border-white', } @@ -54,31 +54,51 @@ const variantClasses = { solid: 'text-white', transparent: 'bg-transparent p-0', round: 'rounded-full p-0', + text: 'border-none bg-transparent', } -const Button = ({ - children, - className = '', - color = 'primary', - disabled, - id = '', - showProgressIndicator, - size = 'small', - text, - variant = 'solid', - onClick, -}: Props) => { +const Button = React.forwardRef(function Button( + { + children, + className = '', + color = 'primary', + disabled, + id = '', + showProgressIndicator, + size = 'small', + text, + variant = 'solid', + onClick, + }: Props, + ref, +) { + const buttonClasses = [] + + switch (variant) { + case 'round': + buttonClasses.push(sizeClasses[size], roundSizeClasses[size], colorClasses[color]) + break + + case 'transparent': + buttonClasses.push(sizeClasses[size], transparentColorClasses[color]) + break + + case 'solid': + buttonClasses.push(sizeClasses[size], colorClasses[color]) + break + default: + } + return ( ) -} +}) export default Button diff --git a/components/Card.tsx b/components/Card.tsx index 419f9eb7..e81033e7 100644 --- a/components/Card.tsx +++ b/components/Card.tsx @@ -11,7 +11,7 @@ const Card = ({ children, className }: Props) => {
{children} diff --git a/components/ConnectModal.tsx b/components/ConnectModal.tsx index 94a68af4..bf07d919 100644 --- a/components/ConnectModal.tsx +++ b/components/ConnectModal.tsx @@ -1,12 +1,10 @@ -import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate' -import { Coin } from '@cosmjs/stargate' import { Dialog, Transition } from '@headlessui/react' import Image from 'next/image' -import React, { Fragment, useState } from 'react' +import { Fragment, useState } from 'react' import { toast } from 'react-toastify' import useWalletStore from 'stores/useWalletStore' -import { ChainId, Wallet } from 'types' +import { Wallet } from 'types' import { getInjectiveAddress } from 'utils/address' import { chain } from 'utils/chains' import { getExperimentalChainConfigBasedOnChainId } from 'utils/experimental-chains' diff --git a/components/CreditManager.tsx b/components/CreditManager.tsx new file mode 100644 index 00000000..5bf260a9 --- /dev/null +++ b/components/CreditManager.tsx @@ -0,0 +1,172 @@ +import BigNumber from 'bignumber.js' + +import FormattedNumber from 'components/FormattedNumber' +import ArrowRightLine from 'components/Icons/arrow-right-line.svg' +import Text from 'components/Text' +import useAccountStats from 'hooks/useAccountStats' +import useCreditAccountPositions from 'hooks/useCreditAccountPositions' +import useMarkets from 'hooks/useMarkets' +import useTokenPrices from 'hooks/useTokenPrices' +import useCreditManagerStore from 'stores/useCreditManagerStore' +import useWalletStore from 'stores/useWalletStore' +import { chain } from 'utils/chains' +import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' + +const CreditManager = () => { + const address = useWalletStore((s) => s.address) + const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) + const toggleCreditManager = useCreditManagerStore((s) => s.actions.toggleCreditManager) + + const { data: positionsData, isLoading: isLoadingPositions } = useCreditAccountPositions( + selectedAccount ?? '', + ) + + const { data: tokenPrices } = useTokenPrices() + const { data: marketsData } = useMarkets() + const accountStats = useAccountStats() + + const getTokenTotalUSDValue = (amount: string, denom: string) => { + // early return if prices are not fetched yet + if (!tokenPrices) return 0 + + return ( + BigNumber(amount) + .div(10 ** getTokenDecimals(denom)) + .toNumber() * tokenPrices[denom] + ) + } + + return ( +
+
+ + Account {selectedAccount} + +
{}}> + + + +
+
+
+
+ + Total Position: + + + + + +
+
+ + Total Liabilities: + + + + +
+
+
+ + Balances + + {isLoadingPositions ? ( +
Loading...
+ ) : ( +
+
+ + Asset + + + Value + + + Size + + + APY + +
+ {positionsData?.coins.map((coin) => ( +
+ + {getTokenSymbol(coin.denom)} + + + + + + + + + - + +
+ ))} + {positionsData?.debts.map((coin) => ( +
+ + {getTokenSymbol(coin.denom)} + + + + + + + + + + +
+ ))} +
+ )} +
+
+ ) +} + +export default CreditManager diff --git a/components/CreditManager/index.tsx b/components/CreditManager/index.tsx deleted file mode 100644 index 6f748427..00000000 --- a/components/CreditManager/index.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import BigNumber from 'bignumber.js' -import { useRef, useState } from 'react' - -import Button from 'components/Button' -import ContainerSecondary from 'components/ContainerSecondary' -import FundAccountModal from 'components/FundAccountModal' -import WithdrawModal from 'components/WithdrawModal' -import useAccountStats from 'hooks/useAccountStats' -import useCreditAccountPositions from 'hooks/useCreditAccountPositions' -import useMarkets from 'hooks/useMarkets' -import useTokenPrices from 'hooks/useTokenPrices' -import useCreditManagerStore from 'stores/useCreditManagerStore' -import useWalletStore from 'stores/useWalletStore' -import { chain } from 'utils/chains' -import { formatCurrency } from 'utils/formatters' -import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' - -const CreditManager = () => { - const [showFundWalletModal, setShowFundWalletModal] = useState(false) - const [showWithdrawModal, setShowWithdrawModal] = useState(false) - - // recreate modals and reset state whenever ref changes - const modalId = useRef(0) - - const address = useWalletStore((s) => s.address) - const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) - - const { data: positionsData, isLoading: isLoadingPositions } = useCreditAccountPositions( - selectedAccount ?? '', - ) - - const { data: tokenPrices } = useTokenPrices() - const { data: marketsData } = useMarkets() - const accountStats = useAccountStats() - - const getTokenTotalUSDValue = (amount: string, denom: string) => { - // early return if prices are not fetched yet - if (!tokenPrices) return 0 - - return ( - BigNumber(amount) - .div(10 ** getTokenDecimals(denom)) - .toNumber() * tokenPrices[denom] - ) - } - - if (!address) { - return ( -
- You must have a connected wallet -
- ) - } - - return ( -
- - - - - -
-
Total Position:
- -
- {formatCurrency( - BigNumber(accountStats?.totalPosition ?? 0) - .dividedBy(10 ** chain.stakeCurrency.coinDecimals) - .toNumber(), - )} -
-
-
-
Total Liabilities:
-
- {formatCurrency( - BigNumber(accountStats?.totalDebt ?? 0) - .dividedBy(10 ** chain.stakeCurrency.coinDecimals) - .toNumber(), - )} -
-
-
- -

Balances

- {isLoadingPositions ? ( -
Loading...
- ) : ( - <> -
-
Asset
-
Value
-
Size
-
APY
-
- {positionsData?.coins.map((coin) => ( -
-
{getTokenSymbol(coin.denom)}
-
- {formatCurrency(getTokenTotalUSDValue(coin.amount, coin.denom))} -
-
- {BigNumber(coin.amount) - .div(10 ** getTokenDecimals(coin.denom)) - .toNumber() - .toLocaleString(undefined, { - maximumFractionDigits: getTokenDecimals(coin.denom), - })} -
-
-
-
- ))} - {positionsData?.debts.map((coin) => ( -
-
{getTokenSymbol(coin.denom)}
-
- -{formatCurrency(getTokenTotalUSDValue(coin.amount, coin.denom))} -
-
- - - {BigNumber(coin.amount) - .div(10 ** getTokenDecimals(coin.denom)) - .toNumber() - .toLocaleString(undefined, { - maximumFractionDigits: 6, - })} -
-
- -{(Number(marketsData?.[coin.denom].borrow_rate) * 100).toFixed(1)}% -
-
- ))} - - )} -
- setShowFundWalletModal(false)} - /> - setShowWithdrawModal(false)} - /> -
- ) -} - -export default CreditManager diff --git a/components/Number.tsx b/components/FormattedNumber.tsx similarity index 95% rename from components/Number.tsx rename to components/FormattedNumber.tsx index fe5a43aa..2445390b 100644 --- a/components/Number.tsx +++ b/components/FormattedNumber.tsx @@ -17,7 +17,7 @@ interface Props { abbreviated?: boolean } -const Number = ({ +const FormattedNumber = ({ amount, animate = false, className, @@ -72,4 +72,4 @@ const Number = ({ ) } -export default React.memo(Number) +export default React.memo(FormattedNumber) diff --git a/components/FundAccountModal.tsx b/components/FundAccountModal.tsx deleted file mode 100644 index cf3368dd..00000000 --- a/components/FundAccountModal.tsx +++ /dev/null @@ -1,220 +0,0 @@ -import { Dialog, Switch, Transition } from '@headlessui/react' -import BigNumber from 'bignumber.js' -import Image from 'next/image' -import React, { useEffect, useMemo, useState } from 'react' -import { toast } from 'react-toastify' -import useLocalStorageState from 'use-local-storage-state' - -import Slider from 'components/Slider' -import useDepositCreditAccount from 'hooks/mutations/useDepositCreditAccount' -import useAllBalances from 'hooks/useAllBalances' -import useAllowedCoins from 'hooks/useAllowedCoins' -import useCreditManagerStore from 'stores/useCreditManagerStore' -import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' -import Button from 'components/Button' -import ContainerSecondary from 'components/ContainerSecondary' -import CircularProgress from 'components/CircularProgress' - -const FundAccountModal = ({ show, onClose }: any) => { - const [amount, setAmount] = useState(0) - const [selectedToken, setSelectedToken] = useState('') - - const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) - - const [lendAssets, setLendAssets] = useLocalStorageState(`lendAssets_${selectedAccount}`, { - defaultValue: false, - }) - - const { data: balancesData } = useAllBalances() - const { data: allowedCoinsData, isLoading: isLoadingAllowedCoins } = useAllowedCoins() - const { mutate, isLoading } = useDepositCreditAccount( - selectedAccount || '', - selectedToken, - BigNumber(amount) - .times(10 ** getTokenDecimals(selectedToken)) - .toNumber(), - { - onSuccess: () => { - setAmount(0) - toast.success(`${amount} ${getTokenSymbol(selectedToken)} successfully Deposited`) - onClose() - }, - }, - ) - - useEffect(() => { - if (allowedCoinsData && allowedCoinsData.length > 0) { - // initialize selected token when allowedCoins fetch data is available - setSelectedToken(allowedCoinsData[0]) - } - }, [allowedCoinsData]) - - const walletAmount = useMemo(() => { - if (!selectedToken) return 0 - - return BigNumber(balancesData?.find((balance) => balance.denom === selectedToken)?.amount ?? 0) - .div(10 ** getTokenDecimals(selectedToken)) - .toNumber() - }, [balancesData, selectedToken]) - - const handleValueChange = (value: number) => { - if (value > walletAmount) { - setAmount(walletAmount) - return - } - - setAmount(value) - } - - const maxValue = walletAmount - const percentageValue = isNaN(amount) ? 0 : (amount * 100) / maxValue - - return ( - - - -
- - -
-
- - - {isLoading && ( -
- -
- )} - -
-
-

About

-

- Bringing the next generation of video creation to the Metaverse. -
- Powered by deep-learning. -

-
- mars -
- -
- - Fund Account {selectedAccount} - - -

- Transfer assets from your injective wallet to your Mars credit account. If you - don’t have any assets in your injective wallet use the injective bridge to - transfer funds to your injective wallet. -

- {isLoadingAllowedCoins ? ( -

Loading...

- ) : ( - <> -
-
-
Asset:
- -
-
-
Amount:
- handleValueChange(e.target.valueAsNumber)} - onBlur={(e) => { - if (e.target.value === '') setAmount(0) - }} - /> -
-
-

In wallet: {walletAmount.toLocaleString()}

- { - const decimal = value[0] / 100 - const tokenDecimals = getTokenDecimals(selectedToken) - // limit decimal precision based on token contract decimals - const newAmount = Number((decimal * maxValue).toFixed(tokenDecimals)) - - setAmount(newAmount) - }} - onMaxClick={() => setAmount(maxValue)} - /> - - )} -
- -
-

Lending Assets

-
- Lend assets from account to earn yield. -
-
- - - - -
- -
-
-
-
-
-
-
- ) -} - -export default FundAccountModal diff --git a/components/Gauge.tsx b/components/Gauge.tsx new file mode 100644 index 00000000..f0e5c529 --- /dev/null +++ b/components/Gauge.tsx @@ -0,0 +1,86 @@ +import classNames from 'classnames' +import { ReactNode } from 'react' + +import Tooltip from './Tooltip' + +type Props = { + tooltip: string | ReactNode + strokeWidth?: number + background?: string + diameter?: number + value: number + label?: string +} + +const Gauge = ({ background = '#15161A', diameter = 40, value = 0, label, tooltip }: Props) => { + const percentage = value * 100 + const percentageValue = percentage > 100 ? 100 : percentage < 0 ? 0 : percentage + const semiCirclePercentage = Math.abs(percentageValue / 2 - 50) + + return ( + +
+ + + + + + + + + + {label && ( + + {label} + + )} +
+
+ ) +} + +export default Gauge diff --git a/components/Icons/arrow-back.svg b/components/Icons/arrow-back.svg index 940986ca..ee08b59b 100644 --- a/components/Icons/arrow-back.svg +++ b/components/Icons/arrow-back.svg @@ -1,4 +1,4 @@ -; + - - \ No newline at end of file + + + diff --git a/components/Icons/arrow-left-line.svg b/components/Icons/arrow-left-line.svg new file mode 100644 index 00000000..9250075b --- /dev/null +++ b/components/Icons/arrow-left-line.svg @@ -0,0 +1,6 @@ + + + diff --git a/components/Icons/arrow-up.svg b/components/Icons/arrow-up.svg new file mode 100644 index 00000000..08098686 --- /dev/null +++ b/components/Icons/arrow-up.svg @@ -0,0 +1,6 @@ + + + + diff --git a/components/Icons/logo.svg b/components/Icons/logo.svg index c07aee18..b3fd914f 100644 --- a/components/Icons/logo.svg +++ b/components/Icons/logo.svg @@ -1,6 +1,24 @@ - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/Icons/mars-protocol.svg b/components/Icons/mars-protocol.svg new file mode 100644 index 00000000..0a99600b --- /dev/null +++ b/components/Icons/mars-protocol.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + diff --git a/components/Icons/search.svg b/components/Icons/search.svg new file mode 100644 index 00000000..3afb7d96 --- /dev/null +++ b/components/Icons/search.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/components/Icons/triangle-down.svg b/components/Icons/triangle-down.svg new file mode 100644 index 00000000..7fc31df9 --- /dev/null +++ b/components/Icons/triangle-down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/components/Layout.tsx b/components/Layout.tsx index 007bcf27..b4d9f0cf 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -2,13 +2,18 @@ import classNames from 'classnames' import React from 'react' import CreditManager from 'components/CreditManager' -import Navigation from 'components/Navigation' +import ArrowLeftLine from 'components/Icons/arrow-left-line.svg' +import DesktopNavigation from 'components/Navigation/DesktopNavigation' +import useCreditAccounts from 'hooks/useCreditAccounts' import useCreditManagerStore from 'stores/useCreditManagerStore' import useWalletStore from 'stores/useWalletStore' const Layout = ({ children }: { children: React.ReactNode }) => { + const toggleCreditManager = useCreditManagerStore((s) => s.actions.toggleCreditManager) const isOpen = useCreditManagerStore((s) => s.isOpen) const address = useWalletStore((s) => s.address) + const { data: creditAccountsList, isLoading: isLoadingCreditAccounts } = useCreditAccounts() + const hasCreditAccounts = creditAccountsList && creditAccountsList.length > 0 const filter = { day: 'brightness-100 hue-rotate-0', @@ -25,10 +30,17 @@ const Layout = ({ children }: { children: React.ReactNode }) => { return (
- -
- {children} - {isOpen && } + +
+
{children}
+ {isOpen && hasCreditAccounts && } + {!isOpen && hasCreditAccounts && ( +
+
+ +
+
+ )}
) diff --git a/components/Modal.tsx b/components/Modal.tsx index bce8c024..75b72df3 100644 --- a/components/Modal.tsx +++ b/components/Modal.tsx @@ -9,37 +9,36 @@ interface Props { content?: ReactNode | string className?: string open: boolean - setOpen: (open: boolean) => void + setOpen?: (open: boolean) => void } const Modal = ({ children, content, className, open, setOpen }: Props) => { const onClickAway = () => { - setOpen(false) + if (setOpen) setOpen(false) } return open ? ( - <> - - +
+ + {setOpen && ( + + + + )} + {children ? children : content} + +
- - - {children ? children : content} - -
- + /> +
+
) : null } diff --git a/components/Navigation.tsx b/components/Navigation.tsx deleted file mode 100644 index 832c032f..00000000 --- a/components/Navigation.tsx +++ /dev/null @@ -1,233 +0,0 @@ -import { Popover } from '@headlessui/react' -import BigNumber from 'bignumber.js' -import Image from 'next/image' -import Link from 'next/link' -import { useRouter } from 'next/router' -import { useMemo } from 'react' - -import ChevronDownIcon from 'components/Icons/expand.svg' -import Button from 'components/Button' -import CircularProgress from 'components/CircularProgress' -import ArrowRightLineIcon from 'components/Icons/arrow-right-line.svg' -import ProgressBar from 'components/ProgressBar' -import SearchInput from 'components/SearchInput' -import SemiCircleProgress from 'components/SemiCircleProgress' -import Wallet from 'components/Wallet' -import useCreateCreditAccount from 'hooks/mutations/useCreateCreditAccount' -import useDeleteCreditAccount from 'hooks/mutations/useDeleteCreditAccount' -import useAccountStats from 'hooks/useAccountStats' -import useCreditAccounts from 'hooks/useCreditAccounts' -import useCreditManagerStore from 'stores/useCreditManagerStore' -import useWalletStore from 'stores/useWalletStore' -import { chain } from 'utils/chains' -import { formatCurrency } from 'utils/formatters' - -// TODO: will require some tweaks depending on how lower viewport mocks pans out -const MAX_VISIBLE_CREDIT_ACCOUNTS = 5 - -const navItems = [ - { href: '/trade', label: 'Trade' }, - { href: '/earn', label: 'Earn' }, - { href: '/borrow', label: 'Borrow' }, - { href: '/portfolio', label: 'Portfolio' }, - { href: '/council', label: 'Council' }, -] - -const NavLink = ({ href, children }: { href: string; children: string }) => { - const router = useRouter() - - return ( - - - {children} - - - ) -} - -const Navigation = () => { - const address = useWalletStore((s) => s.address) - const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) - const setSelectedAccount = useCreditManagerStore((s) => s.actions.setSelectedAccount) - const toggleCreditManager = useCreditManagerStore((s) => s.actions.toggleCreditManager) - - const { data: creditAccountsList, isLoading: isLoadingCreditAccounts } = useCreditAccounts() - const { mutate: createCreditAccount, isLoading: isLoadingCreate } = useCreateCreditAccount() - const { mutate: deleteCreditAccount, isLoading: isLoadingDelete } = useDeleteCreditAccount( - selectedAccount || '', - ) - - const accountStats = useAccountStats() - - const { firstCreditAccounts, restCreditAccounts } = useMemo(() => { - return { - firstCreditAccounts: creditAccountsList?.slice(0, MAX_VISIBLE_CREDIT_ACCOUNTS) ?? [], - restCreditAccounts: creditAccountsList?.slice(MAX_VISIBLE_CREDIT_ACCOUNTS) ?? [], - } - }, [creditAccountsList]) - - const isConnected = !!address - const hasCreditAccounts = creditAccountsList && creditAccountsList.length > 0 - - const rightSideContent = () => { - if ((!isConnected && !hasCreditAccounts) || isLoadingCreditAccounts) { - return null - } - - if (!hasCreditAccounts) { - return - } - - return ( -
- {accountStats && ( - <> -

- {formatCurrency( - BigNumber(accountStats.netWorth) - .dividedBy(10 ** chain.stakeCurrency.coinDecimals) - .toNumber(), - )} -

- {/* TOOLTIP */} -
- -
- - - - )} -
- -
-
- ) - } - - return ( -
- {/* Main navigation bar */} -
- - - mars - - -
- {navItems.map((item, index) => ( - - {item.label} - - ))} -
- -
- {/* Sub navigation bar */} -
-
- - {isConnected && hasCreditAccounts && ( - <> - {firstCreditAccounts.map((account) => ( -
setSelectedAccount(account)} - > - Account {account} -
- ))} - {restCreditAccounts.length > 0 && ( - - -
- More - - - -
-
- -
- {restCreditAccounts.map((account) => ( -
setSelectedAccount(account)} - > - Account {account} -
- ))} -
-
-
- )} - - -
- Manage - -
-
- - {({ close }) => ( -
-
{ - close() - createCreditAccount() - }} - > - Create Account -
-
{ - close() - deleteCreditAccount() - }} - > - Close Account -
-
alert('TODO')} - > - Transfer Balance -
-
alert('TODO')} - > - Rearrange -
-
- )} -
-
- - )} -
- {rightSideContent()} -
- {(isLoadingCreate || isLoadingDelete) && ( -
- -
- )} -
- ) -} - -export default Navigation diff --git a/components/Navigation/DesktopNavigation.tsx b/components/Navigation/DesktopNavigation.tsx new file mode 100644 index 00000000..8e925b61 --- /dev/null +++ b/components/Navigation/DesktopNavigation.tsx @@ -0,0 +1,80 @@ +import Link from 'next/link' + +import { AccountStatus, SubAccountNavigation } from 'components/Account' +import CircularProgress from 'components/CircularProgress' +import Logo from 'components/Icons/logo.svg' +import Modal from 'components/Modal' +import { menuTree, NavLink } from 'components/Navigation' +import SearchInput from 'components/Navigation/SearchInput' +import Text from 'components/Text' +import Wallet from 'components/Wallet' +import useCreateCreditAccount from 'hooks/mutations/useCreateCreditAccount' +import useDeleteCreditAccount from 'hooks/mutations/useDeleteCreditAccount' +import useCreditAccounts from 'hooks/useCreditAccounts' +import useCreditManagerStore from 'stores/useCreditManagerStore' +import useWalletStore from 'stores/useWalletStore' + +const Navigation = () => { + const address = useWalletStore((s) => s.address) + const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) + const setSelectedAccount = useCreditManagerStore((s) => s.actions.setSelectedAccount) + const { mutate: createCreditAccount, isLoading: isLoadingCreate } = useCreateCreditAccount() + const { mutate: deleteCreditAccount, isLoading: isLoadingDelete } = useDeleteCreditAccount( + selectedAccount || '', + ) + + const { data: creditAccountsList, isLoading: isLoadingCreditAccounts } = useCreditAccounts() + + const isConnected = !!address + const hasCreditAccounts = creditAccountsList && creditAccountsList.length > 0 + + return ( +
+
+
+ + + + + +
+ {menuTree.map((item, index) => ( + + {item.label} + + ))} +
+
+ +
+ {/* Sub navigation bar */} +
+
+ + {isConnected && hasCreditAccounts && ( + + )} +
+ {isConnected && } +
+ +
+ + Confirm Transaction + +
+ +
+
+
+
+ ) +} + +export default Navigation diff --git a/components/Navigation/NavLink.tsx b/components/Navigation/NavLink.tsx new file mode 100644 index 00000000..4ed6d499 --- /dev/null +++ b/components/Navigation/NavLink.tsx @@ -0,0 +1,29 @@ +import Link from 'next/link' +import { useRouter } from 'next/router' +import { ReactNode } from 'react' +import classNames from 'classnames' + +interface Props { + href: string + children: string | ReactNode +} + +const NavLink = ({ href, children }: Props) => { + const router = useRouter() + const isActive = router.pathname === href + + return ( + + + {children} + + + ) +} + +export default NavLink diff --git a/components/Navigation/SearchInput.tsx b/components/Navigation/SearchInput.tsx new file mode 100644 index 00000000..028291d0 --- /dev/null +++ b/components/Navigation/SearchInput.tsx @@ -0,0 +1,14 @@ +import SearchIcon from 'components/Icons/search.svg' +const SearchInput = () => ( +
+ + + + +
+) + +export default SearchInput diff --git a/components/Navigation/index.tsx b/components/Navigation/index.tsx new file mode 100644 index 00000000..7115fb97 --- /dev/null +++ b/components/Navigation/index.tsx @@ -0,0 +1,3 @@ +export { default as DesktopNavigation } from './DesktopNavigation' +export { default as menuTree } from './menuTree' +export { default as NavLink } from './NavLink' diff --git a/components/Navigation/menuTree.ts b/components/Navigation/menuTree.ts new file mode 100644 index 00000000..2664d5d4 --- /dev/null +++ b/components/Navigation/menuTree.ts @@ -0,0 +1,9 @@ +const navItems = [ + { href: '/trade', label: 'Trade' }, + { href: '/earn', label: 'Earn' }, + { href: '/borrow', label: 'Borrow' }, + { href: '/portfolio', label: 'Portfolio' }, + { href: '/council', label: 'Council' }, +] + +export default navItems diff --git a/components/Overlay.tsx b/components/Overlay.tsx index 1b394489..7a88ac88 100644 --- a/components/Overlay.tsx +++ b/components/Overlay.tsx @@ -18,7 +18,7 @@ const Overlay = ({ children, content, className, show, setShow }: Props) => { <>
diff --git a/components/SearchInput.tsx b/components/SearchInput.tsx deleted file mode 100644 index ec37803b..00000000 --- a/components/SearchInput.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react' - -const SearchInput = () => ( -
- - - - - - -
-) - -export default SearchInput diff --git a/components/SemiCircleProgress.tsx b/components/SemiCircleProgress.tsx deleted file mode 100644 index d92e7ff6..00000000 --- a/components/SemiCircleProgress.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import React from 'react' - -type Props = { - stroke?: string - strokeWidth?: number - background?: string - diameter?: 60 - orientation?: any - direction?: any - value: number - label?: string -} - -const SemiCircleProgress = ({ - stroke = '#02B732', - strokeWidth = 6, - background = '#D0D0CE', - diameter = 60, - orientation = 'up', - direction = 'right', - value = 0, - label, -}: Props) => { - const coordinateForCircle = diameter / 2 - const radius = (diameter - 2 * strokeWidth) / 2 - const circumference = Math.PI * radius - const percentage = value * 100 - - let percentageValue - if (percentage > 100) { - percentageValue = 100 - } else if (percentage < 0) { - percentageValue = 0 - } else { - percentageValue = percentage - } - - const semiCirclePercentage = percentageValue * (circumference / 100) - - let rotation - if (orientation === 'down') { - if (direction === 'left') { - rotation = 'rotate(180deg) rotateY(180deg)' - } else { - rotation = 'rotate(180deg)' - } - } else { - if (direction === 'right') { - rotation = 'rotateY(180deg)' - } - } - - let strokeColorClass = 'stroke-green-500' - if (value > 2 / 3) { - strokeColorClass = 'stroke-red-500' - } else if (value > 1 / 3) { - strokeColorClass = 'stroke-yellow-500' - } - - return ( -
- - - - - {label && ( - - {label} - - )} -
- ) -} - -export default SemiCircleProgress diff --git a/components/TextLink.tsx b/components/TextLink.tsx index 8bb49aa8..3c277aa3 100644 --- a/components/TextLink.tsx +++ b/components/TextLink.tsx @@ -1,5 +1,5 @@ import classNames from 'classnames' -import React, { ReactNode } from 'react' +import React, { LegacyRef, ReactNode } from 'react' interface Props extends React.HTMLProps { children?: string | ReactNode @@ -8,6 +8,7 @@ interface Props extends React.HTMLProps { externalLink?: boolean textSize?: 'small' | 'medium' | 'large' text?: string | ReactNode + uppercase?: boolean } const colorClasses = { @@ -17,7 +18,7 @@ const colorClasses = { 'text-secondary hover:text-secondary-highlight active:text-secondary-highlight-10 focus:text-secondary-highlight', tertiary: 'text-secondary-dark/60 hover:text-secondary-dark active:text-secondary-dark-10 focus:text-secondary-dark', - quaternary: 'text-transparent text-white/60 hover:text-white active:text-white', + quaternary: 'hover:text-white active:text-white', } const textSizeClasses = { small: 'text-sm', @@ -25,32 +26,35 @@ const textSizeClasses = { large: 'text-lg', } -const TextLink = ({ - children, - className = '', - color = 'primary', - disabled, - externalLink, - href, - textSize = 'small', - text, - onClick, - ...restProps -}: Props) => { - const linkClasses = classNames( - textSizeClasses[textSize], - colorClasses[color], - disabled && 'pointer-events-none opacity-50', - className, - ) - +const TextLink = React.forwardRef(function TextLink( + { + children, + className = '', + color = 'primary', + disabled, + externalLink, + href, + textSize = 'small', + text, + uppercase, + onClick, + ...restProps + }: Props, + ref, +) { return ( } target={externalLink ? '_blank' : '_self'} rel='noreferrer' onClick={ - onClick && href + onClick && !href ? (e) => { e.preventDefault() if (disabled) return @@ -65,6 +69,6 @@ const TextLink = ({ {children && children} ) -} +}) export default TextLink diff --git a/components/WithdrawModal.tsx b/components/WithdrawModal.tsx deleted file mode 100644 index 96424e40..00000000 --- a/components/WithdrawModal.tsx +++ /dev/null @@ -1,356 +0,0 @@ -import { Dialog, Switch, Transition } from '@headlessui/react' -import BigNumber from 'bignumber.js' -import React, { useEffect, useMemo, useState } from 'react' -import { toast } from 'react-toastify' - -import Slider from 'components/Slider' -import useWithdrawFunds from 'hooks/mutations/useWithdrawFunds' -import useAllBalances from 'hooks/useAllBalances' -import useCalculateMaxWithdrawAmount from 'hooks/useCalculateMaxWithdrawAmount' -import useCreditAccountPositions from 'hooks/useCreditAccountPositions' -import useMarkets from 'hooks/useMarkets' -import useTokenPrices from 'hooks/useTokenPrices' -import useCreditManagerStore from 'stores/useCreditManagerStore' -import { formatCurrency } from 'utils/formatters' -import { getTokenDecimals, getTokenSymbol } from 'utils/tokens' -import useAccountStats, { AccountStatsAction } from 'hooks/useAccountStats' -import { chain } from 'utils/chains' -import Button from 'components/Button' -import ContainerSecondary from 'components/ContainerSecondary' -import ProgressBar from 'components/ProgressBar' -import SemiCircleProgress from 'components/SemiCircleProgress' -import CircularProgress from 'components/CircularProgress' - -const WithdrawModal = ({ show, onClose }: any) => { - const [amount, setAmount] = useState(0) - const [selectedToken, setSelectedToken] = useState('') - const [isBorrowEnabled, setIsBorrowEnabled] = useState(false) - - const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) - const { data: positionsData, isLoading: isLoadingPositions } = useCreditAccountPositions( - selectedAccount ?? '', - ) - - const { data: balancesData } = useAllBalances() - const { data: tokenPrices } = useTokenPrices() - const { data: marketsData } = useMarkets() - - const selectedTokenSymbol = getTokenSymbol(selectedToken) - const selectedTokenDecimals = getTokenDecimals(selectedToken) - - const tokenAmountInCreditAccount = useMemo(() => { - return BigNumber(positionsData?.coins.find((coin) => coin.denom === selectedToken)?.amount ?? 0) - .div(10 ** selectedTokenDecimals) - .toNumber() - }, [positionsData, selectedTokenDecimals, selectedToken]) - - const { actions, borrowAmount, withdrawAmount } = useMemo(() => { - const borrowAmount = - amount > tokenAmountInCreditAccount - ? BigNumber(amount) - .minus(tokenAmountInCreditAccount) - .times(10 ** selectedTokenDecimals) - .toNumber() - : 0 - - const withdrawAmount = BigNumber(amount) - .times(10 ** selectedTokenDecimals) - .toNumber() - - return { - borrowAmount, - withdrawAmount, - actions: [ - { - type: 'borrow', - amount: borrowAmount, - denom: selectedToken, - }, - { - type: 'withdraw', - amount: withdrawAmount, - denom: selectedToken, - }, - ] as AccountStatsAction[], - } - }, [amount, selectedToken, selectedTokenDecimals, tokenAmountInCreditAccount]) - - const accountStats = useAccountStats(actions) - - const { mutate, isLoading } = useWithdrawFunds(withdrawAmount, borrowAmount, selectedToken, { - onSuccess: () => { - onClose() - toast.success(`${amount} ${selectedTokenSymbol} successfully withdrawn`) - }, - }) - - const maxWithdrawAmount = useCalculateMaxWithdrawAmount(selectedToken, isBorrowEnabled) - - const walletAmount = useMemo(() => { - if (!selectedToken) return 0 - - return BigNumber(balancesData?.find((balance) => balance.denom === selectedToken)?.amount ?? 0) - .div(10 ** selectedTokenDecimals) - .toNumber() - }, [balancesData, selectedToken, selectedTokenDecimals]) - - useEffect(() => { - if (positionsData && positionsData.coins.length > 0) { - // initialize selected token when allowedCoins fetch data is available - setSelectedToken(positionsData.coins[0].denom) - } - }, [positionsData]) - - const handleTokenChange = (e: React.ChangeEvent) => { - setSelectedToken(e.target.value) - - if (e.target.value !== selectedToken) setAmount(0) - } - - const handleValueChange = (value: number) => { - if (value > maxWithdrawAmount) { - setAmount(maxWithdrawAmount) - return - } - - setAmount(value) - } - - const handleBorrowChange = () => { - setIsBorrowEnabled((c) => !c) - // reset amount due to max value calculations changing depending on wheter the user is borrowing or not - setAmount(0) - } - - const getTokenTotalUSDValue = (amount: string, denom: string) => { - // early return if prices are not fetched yet - if (!tokenPrices) return 0 - - return ( - BigNumber(amount) - .div(10 ** getTokenDecimals(denom)) - .toNumber() * tokenPrices[denom] - ) - } - - const percentageValue = useMemo(() => { - if (isNaN(amount) || maxWithdrawAmount === 0) return 0 - - return (amount * 100) / maxWithdrawAmount - }, [amount, maxWithdrawAmount]) - - return ( - - - -
- - -
-
- - - {isLoading && ( -
- -
- )} -
- - Withdraw from Account {selectedAccount} - -
- -
-
-
Asset:
- -
-
-
Amount:
- handleValueChange(e.target.valueAsNumber)} - /> -
-
-

In wallet: {walletAmount.toLocaleString()}

- { - const decimal = value[0] / 100 - // limit decimal precision based on token contract decimals - const newAmount = Number( - (decimal * maxWithdrawAmount).toFixed(selectedTokenDecimals), - ) - - setAmount(newAmount) - }} - onMaxClick={() => setAmount(maxWithdrawAmount)} - /> -
- -
-

Withdraw with borrowing

-
Explanation....
-
- - - - -
-
- -
-
-

About

-

Subaccount {selectedAccount}

-
- {accountStats && ( -
-

- {formatCurrency( - BigNumber(accountStats.netWorth) - .dividedBy(10 ** chain.stakeCurrency.coinDecimals) - .toNumber(), - )} -

- {/* TOOLTIP */} -
- -
- - -
- )} -
-
-
-
Total Position:
-
- {formatCurrency( - BigNumber(accountStats?.totalPosition ?? 0) - .dividedBy(10 ** chain.stakeCurrency.coinDecimals) - .toNumber(), - )} -
-
-
-
Total Liabilities:
-
- {formatCurrency( - BigNumber(accountStats?.totalDebt ?? 0) - .dividedBy(10 ** chain.stakeCurrency.coinDecimals) - .toNumber(), - )} -
-
-
-
-

Balances

- {isLoadingPositions ? ( -
Loading...
- ) : ( - - - - - - - - - - - {accountStats?.assets.map((coin) => ( - - - - - - - ))} - {accountStats?.debts.map((coin) => ( - - - - - - - ))} - -
AssetValueSizeAPY
{getTokenSymbol(coin.denom)} - {formatCurrency(getTokenTotalUSDValue(coin.amount, coin.denom))} - - {BigNumber(coin.amount) - .div(10 ** getTokenDecimals(coin.denom)) - .toNumber() - .toLocaleString(undefined, { - maximumFractionDigits: getTokenDecimals(coin.denom), - })} - -
{getTokenSymbol(coin.denom)} - -{formatCurrency(getTokenTotalUSDValue(coin.amount, coin.denom))} - - - - {BigNumber(coin.amount) - .div(10 ** getTokenDecimals(coin.denom)) - .toNumber() - .toLocaleString(undefined, { - maximumFractionDigits: 6, - })} - - -{(Number(marketsData?.[coin.denom].borrow_rate) * 100).toFixed(1)}% -
- )} -
-
-
-
-
-
-
-
- ) -} - -export default WithdrawModal diff --git a/hooks/useAccountStats.tsx b/hooks/useAccountStats.tsx index 1f62b849..30504902 100644 --- a/hooks/useAccountStats.tsx +++ b/hooks/useAccountStats.tsx @@ -53,15 +53,19 @@ const calculateStatsFromAccountPositions = (assets: Asset[], debts: Debt[]) => { const netWorth = BigNumber(totalPosition).minus(totalDebt).toNumber() - const liquidationLTVsWeightedAverage = BigNumber(totalWeightedPositions) - .div(totalPosition) - .toNumber() + const liquidationLTVsWeightedAverage = + totalWeightedPositions === 0 + ? 0 + : BigNumber(totalWeightedPositions).div(totalPosition).toNumber() const maxLeverage = BigNumber(1) .div(BigNumber(1).minus(liquidationLTVsWeightedAverage)) .toNumber() - const currentLeverage = BigNumber(totalPosition).div(netWorth).toNumber() - const health = BigNumber(1).minus(BigNumber(currentLeverage).div(maxLeverage)).toNumber() || 1 + const currentLeverage = netWorth === 0 ? 0 : BigNumber(totalPosition).div(netWorth).toNumber() + const health = + maxLeverage === 0 + ? 1 + : BigNumber(1).minus(BigNumber(currentLeverage).div(maxLeverage)).toNumber() || 1 const risk = liquidationLTVsWeightedAverage ? getRiskFromAverageLiquidationLTVs(liquidationLTVsWeightedAverage) diff --git a/next.config.js b/next.config.js index 98327bdd..394afad7 100644 --- a/next.config.js +++ b/next.config.js @@ -13,6 +13,15 @@ const nextConfig = { // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#use-hidden-source-map hideSourceMaps: true, }, + async redirects() { + return [ + { + source: '/', + destination: '/trade', + permanent: true, + }, + ] + }, webpack(config) { config.module.rules.push({ test: /\.svg$/i, diff --git a/pages/borrow.tsx b/pages/borrow.tsx index 38e45351..2ec418c6 100644 --- a/pages/borrow.tsx +++ b/pages/borrow.tsx @@ -1,5 +1,5 @@ import BigNumber from 'bignumber.js' -import React, { useMemo, useRef, useState } from 'react' +import { useMemo, useRef, useState } from 'react' import BorrowTable from 'components/Borrow/BorrowTable' import BorrowModal from 'components/BorrowModal' @@ -116,7 +116,7 @@ const Borrow = () => { } return ( -
+
diff --git a/pages/council.tsx b/pages/council.tsx index 744cb1ec..697cf306 100644 --- a/pages/council.tsx +++ b/pages/council.tsx @@ -1,11 +1,14 @@ -import React from 'react' - import Card from 'components/Card' +import Text from 'components/Text' const Council = () => { return ( -
- Council Placeholder +
+ + + Council Placeholder + +
) } diff --git a/pages/earn.tsx b/pages/earn.tsx index 4703fa67..0e5058a9 100644 --- a/pages/earn.tsx +++ b/pages/earn.tsx @@ -1,12 +1,21 @@ -import React from 'react' - import Card from 'components/Card' +import Text from 'components/Text' const Earn = () => { return ( -
- Yield Module - Placeholder +
+ + + Yield Module + + +
+ + + Placeholder + + +
) } diff --git a/pages/index.tsx b/pages/index.tsx deleted file mode 100644 index 1e21ed33..00000000 --- a/pages/index.tsx +++ /dev/null @@ -1,369 +0,0 @@ -import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate' -import { useQueryClient } from '@tanstack/react-query' -import BigNumber from 'bignumber.js' -import type { NextPage } from 'next' -import { useEffect, useState } from 'react' -import { toast } from 'react-toastify' - -import Button from 'components/Button' -import Card from 'components/Card' -import CircularProgress from 'components/CircularProgress' -import Text from 'components/Text' -import { contractAddresses } from 'config/contracts' -import useMarkets from 'hooks/useMarkets' -import useTokenPrices from 'hooks/useTokenPrices' -import useCreditManagerStore from 'stores/useCreditManagerStore' -import useWalletStore from 'stores/useWalletStore' -import { queryKeys } from 'types/query-keys-factory' -import { chain } from 'utils/chains' -import { hardcodedFee } from 'utils/contants' - -const Home: NextPage = () => { - const [sendAmount, setSendAmount] = useState('') - const [recipientAddress, setRecipientAddress] = useState('') - - const [allTokens, setAllTokens] = useState(null) - const [walletTokens, setWalletTokens] = useState(null) - - const [borrowAmount, setBorrowAmount] = useState(0) - - const [error, setError] = useState(null) - const [isLoading, setIsLoading] = useState(false) - - const address = useWalletStore((s) => s.address) - const selectedAccount = useCreditManagerStore((s) => s.selectedAccount) - const queryClient = useQueryClient() - - const [signingClient, setSigningClient] = useState() - - const { data: marketsData } = useMarkets() - const { data: tokenPrices } = useTokenPrices() - - useEffect(() => { - ;(async () => { - if (!window.keplr) return - - const offlineSigner = window.keplr.getOfflineSigner(chain.chainId) - const clientInstance = await SigningCosmWasmClient.connectWithSigner(chain.rpc, offlineSigner) - - setSigningClient(clientInstance) - })() - }, [address]) - - const handleSendClick = async () => { - setError(null) - setIsLoading(true) - - try { - // console.log(await signingClient.getHeight()); - - // console.log( - // "contract info", - // signingClient.getContract( - // "osmo1zf26ahe5gqjtvnedh7ems7naf2wtw3z4ll6atf3t0hptal8ss4vq2mlx6w" - // ) - // ); - - const res = await signingClient?.sendTokens( - address, - recipientAddress, - [ - { - denom: chain.stakeCurrency.coinMinimalDenom, - amount: BigNumber(sendAmount) - .times(10 ** chain.stakeCurrency.coinDecimals) - .toString(), - }, - ], - hardcodedFee, - ) - - console.log('txResponse', res) - toast.success( - , - { autoClose: false }, - ) - } catch (e: any) { - console.log(e) - setError(e.message) - } finally { - setIsLoading(false) - } - } - - const handleCreateCreditAccount = async () => { - setError(null) - setIsLoading(true) - - try { - // 200000 gas used - const executeMsg = { - create_credit_account: {}, - } - - const createResult = await signingClient?.execute( - address, - contractAddresses.creditManager, - executeMsg, - hardcodedFee, - ) - - console.log('mint result', createResult) - toast.success( - , - { autoClose: false }, - ) - - queryClient.invalidateQueries(queryKeys.creditAccounts(address)) - } catch (e: any) { - console.log(e) - setError(e.message) - } finally { - setIsLoading(false) - } - } - - // https://github.com/mars-protocol/rover/blob/master/scripts/types/generated/account-nft/AccountNft.types.ts - const handleGetCreditAccounts = async () => { - setError(null) - setIsLoading(true) - - try { - const allTokensQueryMsg = { - all_tokens: {}, - } - - const allTokensResponse = await signingClient?.queryContractSmart( - contractAddresses.accountNft, - allTokensQueryMsg, - ) - - setAllTokens(allTokensResponse.tokens) - - console.log('all tokens', allTokensResponse) - - // Returns de owner of a specific "credit account" - // const ownerOfQueryMsg = { - // owner_of: { - // include_expired: false, - // token_id: "1", - // }, - // }; - - // const ownerResponse = await signingClient.queryContractSmart( - // contractAddresses.accountNft, - // ownerOfQueryMsg - // ); - - // console.log("res owner", ownerResponse); - - const tokensQueryMsg = { - tokens: { - owner: address, - }, - } - - const tokensResponse = await signingClient?.queryContractSmart( - contractAddresses.accountNft, - tokensQueryMsg, - ) - - console.log('res tokens', tokensResponse) - setWalletTokens(tokensResponse.tokens) - } catch (e: any) { - console.log(e) - setError(e.message) - } finally { - setIsLoading(false) - } - } - - const handleBorrowClick = async () => { - setError(null) - setIsLoading(true) - - try { - if (!selectedAccount) return - - const executeMsg = { - update_credit_account: { - account_id: selectedAccount, - actions: [ - { - borrow: { - denom: 'uosmo', - amount: BigNumber(borrowAmount) - .times(10 ** 6) - .toString(), - }, - }, - ], - }, - } - - const borrowResult = await signingClient?.execute( - address, - contractAddresses.creditManager, - executeMsg, - hardcodedFee, - ) - - console.log('borrow result', borrowResult) - toast.success( - , - { autoClose: false }, - ) - - queryClient.invalidateQueries(queryKeys.creditAccounts(address)) - queryClient.invalidateQueries(queryKeys.creditAccountsPositions(selectedAccount)) - queryClient.invalidateQueries(queryKeys.tokenBalance(address, 'uosmo')) - } catch (e: any) { - console.log(e) - setError(e.message) - } finally { - setIsLoading(false) - } - } - - return ( -
- - - Send Tokens - -
-
- Address: - setRecipientAddress(e.target.value)} - /> -
-
- Amount: - setSendAmount(e.target.value)} - /> -
-
- -
- - - Create Credit Account (Mint NFT) - - - - - - Get all Credit Accounts - - - - - - Borrow OSMO - - setBorrowAmount(e.target.valueAsNumber)} - /> - - - -
- {allTokens && ( -
-
- All Tokens - - - {allTokens.length} total - -
- {allTokens.map((token) => ( -

{token}

- ))} -
- )} - {walletTokens && ( - <> -
- Your Tokens - - - {walletTokens.length} total - -
- {walletTokens.map((token) => ( -

{token}

- ))} - - )} -
-
- {tokenPrices && ( -
-

Token Prices:

-
{JSON.stringify(tokenPrices, null, 2)}
-
- )} - {marketsData && ( -
-

Markets Data:

-
{JSON.stringify(marketsData, null, 2)}
-
- )} -
- {error && ( -
- {error} -
- )} - {isLoading && ( -
- -
- )} -
- ) -} - -export default Home diff --git a/pages/portfolio.tsx b/pages/portfolio.tsx index 41ab5c61..6c8a145f 100644 --- a/pages/portfolio.tsx +++ b/pages/portfolio.tsx @@ -1,10 +1,5 @@ -import { useState } from 'react' - -import Button from 'components/Button' import Card from 'components/Card' -import Modal from 'components/Modal' -import Number from 'components/Number' -import Overlay from 'components/Overlay' +import FormattedNumber from 'components/FormattedNumber' import Text from 'components/Text' const mockedAccounts = [ @@ -51,17 +46,12 @@ const mockedAccounts = [ ] const Portfolio = () => { - const [show, setShow] = useState(false) - const [open, setOpen] = useState(true) return ( -
+
- setShow(!show)} role='button'> + Portfolio Module - - - A test overlay - +
{mockedAccounts.map((account) => ( @@ -72,7 +62,7 @@ const Portfolio = () => {
- + Net worth @@ -80,7 +70,7 @@ const Portfolio = () => {
- + Total Position Value @@ -88,7 +78,7 @@ const Portfolio = () => {
- + Debt @@ -96,9 +86,9 @@ const Portfolio = () => {
0 ? 'text-green-400' : 'text-red-500'}> - 0 ? '+$' : '$'} /> @@ -108,7 +98,7 @@ const Portfolio = () => {
- + Current Leverage @@ -116,7 +106,7 @@ const Portfolio = () => {
- + Max Leverage @@ -126,77 +116,6 @@ const Portfolio = () => { ))}
-
-
- - {mockedAccounts.map((account) => ( -
- - {account.label} - -
-
- - - - - Net worth - -
-
- - - - - Total Position Value - -
-
- - - - - Debt - -
-
- 0 ? 'text-green-400' : 'text-red-500'}> - 0 ? '+$' : '$'} - /> - - - P&L - -
-
- - - - - Current Leverage - -
-
- - - - - Max Leverage - -
-
-
- ))} -
) } diff --git a/pages/trade.tsx b/pages/trade.tsx index 0e2d8a4c..7a523c73 100644 --- a/pages/trade.tsx +++ b/pages/trade.tsx @@ -1,22 +1,32 @@ -import React from 'react' - import Card from 'components/Card' +import Text from 'components/Text' import TradeActionModule from 'components/Trade/TradeActionModule' const Trade = () => { return ( -
-
- Graph/Tradingview Module +
+
+ + + Tradingview Graph + +
- Orderbook module (optional) + + + Orderbook module (optional) + +
- Credit Account essential module
- Trader order overview + + + Order history + +
) } diff --git a/public/bg.svg b/public/images/bg.svg similarity index 100% rename from public/bg.svg rename to public/images/bg.svg diff --git a/public/images/fund-modal-bg.png b/public/images/fund-modal-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7d28352877b6c0ae136cb054afe4b34a257aed GIT binary patch literal 215451 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
a8NQu0EsV|6uy|Z}3XhtsUt4rhH0oRA_9D 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 persist( (set, get) => ({ - isOpen: false, + isOpen: true, selectedAccount: null, actions: { toggleCreditManager: () => set(() => ({ isOpen: !get().isOpen })), diff --git a/tailwind.config.js b/tailwind.config.js index 2f5df5af..987d9def 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -12,6 +12,8 @@ module.exports = { 'text-xs', 'text-sm-caps', 'text-sm', + 'text-base-caps', + 'text-base', 'text-lg-caps', 'text-lg', 'text-xl-caps', @@ -29,9 +31,11 @@ module.exports = { extend: { animation: { progress: 'spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite', + fadein: 'fadein 1s ease-in-out forwards', }, backgroundImage: { - mars: 'url(/bg.svg)', + mars: 'url(/images/bg.svg)', + 'fund-modal': 'url(/images/fund-modal-bg.png)', }, backgroundSize: { desktop: '100% auto', @@ -71,6 +75,7 @@ module.exports = { 'grey-highlight': '#4c4c4c', 'grey-light': '#bfbfbf', 'grey-medium': '#5f697a', + header: 'rgba(59, 25, 40, 0.4);', input: '#282a33', loss: '#f96363', mars: '#a03b45', @@ -111,6 +116,12 @@ module.exports = { hueRotate: { '-82': '-82deg', }, + keyframes: { + fadein: { + '0%': { opacity: 0 }, + '100%': { opacity: 1 }, + }, + }, letterSpacing: { normal: 0, wide: '2px', @@ -204,6 +215,13 @@ module.exports = { fontWeight: theme('fontWeight.semibold'), letterSpacing: theme('letterSpacing.wider'), }, + '.text-base-caps': { + fontSize: '15px', + lineHeight: '20px', + textTransform: 'uppercase', + fontWeight: theme('fontWeight.semibold'), + letterSpacing: theme('letterSpacing.wider'), + }, '.text-lg-caps': { fontSize: '16.88px', lineHeight: '24px', diff --git a/yarn.lock b/yarn.lock index 95d18827..90d3393e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1432,11 +1432,6 @@ resolved "https://registry.npmjs.org/@headlessui/react/-/react-1.7.0.tgz" integrity sha512-/nDsijOXRwXVLpUBEiYuWguIBSIN3ZbKyah+KPUiD8bdIKtX1U/k+qLYUEr7NCQnSF2e4w1dr8me42ECuG3cvw== -"@heroicons/react@^2.0.11": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.11.tgz#2c6cf4c66d81142ec87c102502407d8c353558bb" - integrity sha512-bASjOgSSaYj8HqXWsOqaBiB6ZLalE/g90WYGgZ5lPm4KCCG7wPXntY4kzHf5NrLh6UBAcnPwvbiw1Ne9GYfJtw== - "@humanwhocodes/config-array@^0.10.4": version "0.10.4" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz" @@ -2296,18 +2291,6 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash.isequal@^4.5.6": - version "4.5.6" - resolved "https://registry.yarnpkg.com/@types/lodash.isequal/-/lodash.isequal-4.5.6.tgz#ff42a1b8e20caa59a97e446a77dc57db923bc02b" - integrity sha512-Ww4UGSe3DmtvLLJm2F16hDwEQSv7U0Rr8SujLUA2wHI2D2dm8kPu6Et+/y303LfjTIwSBKXB/YTUcAKpem/XEg== - dependencies: - "@types/lodash" "*" - -"@types/lodash@*": - version "4.14.188" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.188.tgz#e4990c4c81f7c9b00c5ff8eae389c10f27980da5" - integrity sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w== - "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" @@ -4827,11 +4810,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"