mango-v4-ui/components/shared/DepositTokenItem.tsx

59 lines
1.6 KiB
TypeScript
Raw Normal View History

2022-07-22 23:15:51 -07:00
import { Bank } from '@blockworks-foundation/mango-v4'
import Image from 'next/image'
2022-08-11 22:48:00 -07:00
import { useMemo } from 'react'
import mangoStore from '../../store/state'
import { formatDecimal } from '../../utils/numbers'
2022-07-22 23:15:51 -07:00
const DepositTokenItem = ({
bank,
onSelect,
walletBalance,
2022-07-22 23:15:51 -07:00
}: {
bank: Bank
onSelect: (x: any) => void
walletBalance: number
2022-07-22 23:15:51 -07:00
}) => {
2022-08-11 22:48:00 -07:00
const { mint, name } = bank
const jupiterTokens = mangoStore((s) => s.jupiterTokens)
const logoUri = useMemo(() => {
let logoURI
if (jupiterTokens.length) {
logoURI = jupiterTokens.find(
(t) => t.address === mint.toString()
)!.logoURI
}
return logoURI
}, [mint, jupiterTokens])
2022-07-22 23:15:51 -07:00
return (
<button
className="default-transition flex w-full rounded-md border border-th-bkg-4 px-4 py-3 disabled:cursor-not-allowed disabled:opacity-60 md:hover:border-th-fgd-4 md:disabled:hover:border-th-bkg-4"
disabled={walletBalance === 0}
2022-07-22 23:15:51 -07:00
onClick={() => onSelect(name)}
>
2022-08-16 04:23:43 -07:00
<div className="flex w-1/5 items-center">
2022-07-22 23:15:51 -07:00
<div className="mr-2.5 flex flex-shrink-0 items-center">
<Image
alt=""
width="24"
height="24"
2022-08-11 22:48:00 -07:00
src={logoUri || `/icons/${name.toLowerCase()}.svg`}
2022-07-22 23:15:51 -07:00
/>
</div>
2022-07-23 22:45:11 -07:00
<p className="text-th-fgd-1">{name}</p>
2022-07-22 23:15:51 -07:00
</div>
2022-08-16 04:23:43 -07:00
<div className="w-2/5 text-right">
2022-07-22 23:15:51 -07:00
<p className="text-th-green">
{formatDecimal(bank.getDepositRate().toNumber(), 2)}%
</p>
</div>
2022-08-16 04:23:43 -07:00
<div className="w-2/5 text-right">
<p className="text-th-fgd-1">{walletBalance}</p>
2022-08-11 22:48:00 -07:00
</div>
2022-07-22 23:15:51 -07:00
</button>
)
}
export default DepositTokenItem