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'
|
2022-08-16 22:15:23 -07:00
|
|
|
import { formatDecimal } from '../../utils/numbers'
|
2022-07-22 23:15:51 -07:00
|
|
|
|
|
|
|
const DepositTokenItem = ({
|
|
|
|
bank,
|
|
|
|
onSelect,
|
2022-08-16 22:15:23 -07:00
|
|
|
walletBalance,
|
2022-07-22 23:15:51 -07:00
|
|
|
}: {
|
|
|
|
bank: Bank
|
|
|
|
onSelect: (x: any) => void
|
2022-08-16 22:15:23 -07:00
|
|
|
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
|
2022-08-16 22:15:23 -07:00
|
|
|
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">
|
2022-08-16 22:15:23 -07:00
|
|
|
<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
|