import React, { useState } from 'react'; import { Button } from '../ui/Button'; import Typography from '../ui/Typography'; import { Card, CardContent } from '../ui/Card'; import { FiCheck, FiX, FiCopy, FiExternalLink } from 'react-icons/fi'; import { cn } from '../../lib/utils'; interface TransactionDisplayProps { transactionBytes?: string; transactionId?: string; scheduleId?: string; network?: string; onApprove?: () => void; onReject?: () => void; className?: string; } /** * Component to display transaction bytes and approval buttons */ export const TransactionDisplay: React.FC = ({ transactionBytes, transactionId, scheduleId, network = 'testnet', onApprove, onReject, className }) => { const [copied, setCopied] = useState(false); const handleCopy = async () => { if (transactionBytes) { await navigator.clipboard.writeText(transactionBytes); setCopied(true); setTimeout(() => setCopied(false), 2000); } }; if (!transactionBytes && !transactionId && !scheduleId) return null; return (
Transaction Details {transactionBytes && ( )}
{transactionBytes && (
Transaction Bytes:
{transactionBytes.substring(0, 100)}...
)} {transactionId && (
Transaction ID:
{transactionId}
)} {scheduleId && (
Schedule ID:
{scheduleId}
)} {onApprove && onReject && (
)}
); }; export default TransactionDisplay;