import type { NextPage } from 'next' import { DashboardNavbar } from '.' import { Table, Td, Th, TrBody, TrHead } from '@components/shared/TableElements' import useBanks from 'hooks/useBanks' import { Bank } from '@blockworks-foundation/mango-v4' import { formatCurrencyValue } from 'utils/numbers' import { toUiDecimalsForQuote } from '@blockworks-foundation/mango-v4' import { useRouter } from 'next/router' // Import the useRouter hook import { useTokenStats } from 'hooks/useTokenStats' import { TokenStatsItem } from 'types' import BankAmountWithValue from '@components/shared/BankAmountWithValue' import Loading from '@components/shared/Loading' const Marketing: NextPage = () => { const banks = useBanks()['banks'] const router = useRouter() const { data: tokenStats, isLoading } = useTokenStats() // const getColorForPercent = (percent: number) => { // // Use a smoother gradient of colors from red to green based on the percentage // if (percent < 10) return '#ff073a' // Deep red // else if (percent < 20) return '#ff6347' // Tomato // else if (percent < 30) return '#ff7f50' // Coral // else if (percent < 40) return '#ffa500' // Orange // else if (percent < 50) return '#ffd700' // Gold // else if (percent < 60) return '#ffff00' // Yellow // else if (percent < 70) return '#adff2f' // Green Yellow // else if (percent < 80) return '#7fff00' // Chartreuse // else if (percent < 90) return '#32cd32' // Lime Green // return '#00ff00' // Green // } const getColorForPercent = (percent: number) => { // Use a smoother gradient of colors from red to green based on the percentage if (percent < 20) return 'var(--down)' // Deep red else if (percent < 60) return 'var(--warning)' // Yellow return 'var(--up)' // Green } const handleRowClick = (tokenName: string) => { router.push(`/stats?token=${tokenName}`) } const findClosestDate = (targetDate: Date, stats: TokenStatsItem[]) => { if (stats?.length) { return stats.reduce((closest, date) => { const dateObj = new Date(date.date_hour) const diff = Math.abs(dateObj.getTime() - targetDate.getTime()) return diff < Math.abs(new Date(closest.date_hour).getTime() - targetDate.getTime()) ? date : closest }) } } return (
Fullness of Token Deposits
{'Symbol'} | {'Leverage'} | {'Deposits'} | {'Limit'} | {'Percent'} | {'Deposits Change 1d'} | {'Deposits Change 1w'} |
{bank?.name} |
{( 1 / (1 - bank?.initAssetWeight.toNumber()) ).toFixed()} x |
$ {(bank?.uiDeposits() * bank?.uiPrice).toLocaleString( undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0, }, )} |
{formatCurrencyValue( toUiDecimalsForQuote( bank.borrowWeightScaleStartQuote, ), )} |
{percent.toFixed(2)}% {/* */} |
{isLoading ? (
|
{isLoading ? (
|
---|