'use client'; import { Button } from '@/components/ui/button'; import { ArrowDown, X } from 'lucide-react'; import type { TokenDetails } from '@/hooks/usePartyPlanner'; import type { GasEstimate } from '@/hooks/usePartyPool'; import { useToast } from '@/components/ui/toast'; interface SwapReviewModalProps { open: boolean; onOpenChange: (open: boolean) => void; fromToken: TokenDetails | null; toToken: TokenDetails | null; fromAmount: string; toAmount: string; slippage: number; gasEstimate: GasEstimate | null; fee: bigint | null; onConfirm: () => void; isSwapping: boolean; } export function SwapReviewModal({ open, onOpenChange, fromToken, toToken, fromAmount, toAmount, slippage, gasEstimate, fee, onConfirm, isSwapping, }: SwapReviewModalProps) { if (!open) return null; // Calculate exchange rate const exchangeRate = fromAmount && toAmount && parseFloat(fromAmount) > 0 ? (parseFloat(toAmount) / parseFloat(fromAmount)).toFixed(6) : '0'; // Format fee const feeFormatted = fee && toToken ? (Number(fee) / Math.pow(10, toToken.decimals)).toFixed(6) : '0'; return ( <> {/* Backdrop */}