import { useMemo, useState } from 'react' import Button, { LinkButton } from '../shared/Button' import DepositModal from '../modals/DepositModal' import WithdrawModal from '../modals/WithdrawModal' import { ArrowDownTrayIcon, ArrowUpTrayIcon, BanknotesIcon, DocumentDuplicateIcon, EllipsisHorizontalIcon, PencilIcon, TrashIcon, UsersIcon, } from '@heroicons/react/20/solid' import { useTranslation } from 'next-i18next' import IconDropMenu from '../shared/IconDropMenu' import CloseAccountModal from '../modals/CloseAccountModal' import AccountNameModal from '../modals/AccountNameModal' import { copyToClipboard } from 'utils' import { notify } from 'utils/notifications' import { abbreviateAddress } from 'utils/formatting' import { HealthType, toUiDecimalsForQuote, } from '@blockworks-foundation/mango-v4' import RepayModal from '@components/modals/RepayModal' import DelegateModal from '@components/modals/DelegateModal' import useMangoAccount from 'hooks/useMangoAccount' import useMangoGroup from 'hooks/useMangoGroup' const AccountActions = () => { const { t } = useTranslation(['common', 'close-account']) const { group } = useMangoGroup() const { mangoAccount } = useMangoAccount() const [showCloseAccountModal, setShowCloseAccountModal] = useState(false) const [showDepositModal, setShowDepositModal] = useState(false) const [showEditAccountModal, setShowEditAccountModal] = useState(false) const [showWithdrawModal, setShowWithdrawModal] = useState(false) const [showRepayModal, setShowRepayModal] = useState(false) const [showDelegateModal, setShowDelegateModal] = useState(false) const handleCopyAddress = (address: string) => { copyToClipboard(address) notify({ title: t('copy-address-success', { pk: abbreviateAddress(mangoAccount!.publicKey), }), type: 'success', }) } const hasBorrows = useMemo(() => { if (!mangoAccount || !group) return false return ( toUiDecimalsForQuote( mangoAccount.getLiabsValue(group, HealthType.init).toNumber() ) >= 10 ) }, [mangoAccount, group]) return ( <>
{hasBorrows ? ( ) : null} } size="medium" > handleCopyAddress(mangoAccount!.publicKey.toString()) } > {t('copy-address')} setShowEditAccountModal(true)} > {t('edit-account')} setShowDelegateModal(true)} > {t('delegate-account')} setShowCloseAccountModal(true)} > {t('close-account')}
{showCloseAccountModal ? ( setShowCloseAccountModal(false)} /> ) : null} {showDepositModal ? ( setShowDepositModal(false)} /> ) : null} {showEditAccountModal ? ( setShowEditAccountModal(false)} /> ) : null} {showWithdrawModal ? ( setShowWithdrawModal(false)} /> ) : null} {showRepayModal ? ( setShowRepayModal(false)} /> ) : null} {showDelegateModal ? ( setShowDelegateModal(false)} /> ) : null} ) } export default AccountActions