import React from 'react';
import { Callout, Loader } from '@vegaprotocol/ui-toolkit';
import { useTranslation } from 'react-i18next';
import { Link } from '@vegaprotocol/ui-toolkit';
import { useEnvironment } from '@vegaprotocol/environment';
export const TransactionPending = ({
hash,
heading,
footer,
body,
confirmations,
requiredConfirmations,
}: {
hash: string;
confirmations: number | null;
requiredConfirmations: number | null;
heading?: React.ReactElement | string;
footer?: React.ReactElement | string;
body?: React.ReactElement | string;
}) => {
const { ETHERSCAN_URL } = useEnvironment();
const { t } = useTranslation();
const remainingConfirmations = React.useMemo(() => {
if (requiredConfirmations) {
return Math.max(0, requiredConfirmations - (confirmations || 0));
}
return 0;
}, [confirmations, requiredConfirmations]);
const title = React.useMemo(() => {
const defaultTitle = heading || t('Transaction in progress');
if (remainingConfirmations > 0) {
return `${defaultTitle}. ${t('blockCountdown', {
amount: remainingConfirmations,
})}`;
}
return defaultTitle;
}, [heading, remainingConfirmations, t]);
return (
{body}
)}{hash}
{footer &&{footer}
} ); };