import { useTranslation } from 'react-i18next'; import { MenuItem } from '@biom3/react'; import { forwardRef, useImperativeHandle, useState } from 'react'; import { useWalletConnect } from '../../../lib/hooks/useWalletConnect'; export type WalletConnectItemProps = { onConnect: () => void; loading?: boolean; }; export const WalletConnectItem = forwardRef(({ onConnect, loading = false, }: WalletConnectItemProps, ref) => { const { t } = useTranslation(); const { walletConnectBusy } = useWalletConnect(); const [busy, setBusy] = useState(false); const connect = async () => { if (loading) return; setBusy(true); // let the parent handle errors try { await onConnect(); } finally { setBusy(false); } }; useImperativeHandle(ref, () => ({ connect, })); return ( {t('wallets.walletconnect.heading')} {(!busy && )} {t('wallets.walletconnect.description')} {(busy && ( ))} ); });