import { Dialog, Link } from '@vegaprotocol/ui-toolkit'; import { useEnvironment } from '@vegaprotocol/environment'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { AppStateActionType, useAppState, } from '../../contexts/app-state/app-state-context'; import { truncateMiddle } from '../../lib/truncate-middle'; import { Tick } from '../icons'; import type { TxData } from '../../stores/transactions'; import { useTransactionStore } from '../../stores/transactions'; const TransactionModalTh = ({ children }: { children: React.ReactNode }) => ( {children} ); const TransactionModalTd = ({ children }: { children: React.ReactNode }) => ( {children} ); const TransactionModalStatus = ({ children, }: { children: React.ReactNode; }) => {children}; export const TransactionModal = () => { const { ETHERSCAN_URL } = useEnvironment(); const { t } = useTranslation(); const { transactions } = useTransactionStore(); const { appState, appDispatch } = useAppState(); const renderStatus = (txObj: TxData) => { if (!txObj.receipt) { return {t('pending')}; } if (txObj.receipt.confirmations >= txObj.requiredConfirmations) { return ( {t('confirmed')} ); } return ( {t('confirmationsRemaining', { confirmations: txObj.receipt.confirmations, required: txObj.requiredConfirmations, })} ); }; return ( appDispatch({ type: AppStateActionType.SET_TRANSACTION_OVERLAY, isOpen, }) } > {transactions.length ? ( {t('transaction')}{t('status')} {transactions.map((transaction) => { return ( {truncateMiddle(transaction.tx.hash)} {renderStatus(transaction)} ); })}
) : (

{t('noTransactions')}

)}
); };