import React from "react"; import { HStack, Text, VStack } from "native-base"; import { TokenInput } from "../../../core"; import { CurrencyValue } from "@usedapp/core"; type ValidationReason = "minAmount" | "maxAmount" | "cannotBridge" | "error" | "insufficientBalance" | "invalidChain"; const VALIDATION_ERROR_MESSAGES: Record = { minAmount: "Minimum amount not available", maxAmount: "Amount exceeds maximum limit", cannotBridge: "Bridge not available for this amount", error: "Invalid amount", insufficientBalance: "Insufficient balance", invalidChain: "Invalid chain selection" } as const; interface AmountInputProps { wei: string; gdValue: CurrencyValue; bridgeWeiAmount: string; setBridgeAmount: (amount: string) => void; minimumAmount: CurrencyValue; maximumAmount?: CurrencyValue; isValid: boolean; reason: ValidationReason; balance: CurrencyValue; toggleState?: any; } export const AmountInput: React.FC = ({ wei, gdValue, bridgeWeiAmount, setBridgeAmount, minimumAmount, maximumAmount, isValid, reason, balance, toggleState }) => { return ( Amount to send Balance: {balance.format()} {!isValid && bridgeWeiAmount && ( {reason === "minAmount" && minimumAmount?.format ? `Minimum amount is ${minimumAmount.format()}` : reason === "maxAmount" && maximumAmount?.format ? `Maximum amount is ${maximumAmount.format()}` : VALIDATION_ERROR_MESSAGES[reason]} )} ); };