import type { Route } from '@lifi/sdk' import type { BoxProps } from '@mui/material' import { Collapse } from '@mui/material' import { AccountDeployedMessage } from './AccountDeployedMessage.js' import { AccountNotDeployedMessage } from './AccountNotDeployedMessage.js' import { FundsSufficiencyMessage } from './FundsSufficiencyMessage.js' import { GasSufficiencyMessage } from './GasSufficiencyMessage.js' import { MinFromAmountUSDMessage } from './MinFromAmountUSDMessage.js' import { MissingRouteRequiredAccountMessage } from './MissingRouteRequiredAccountMessage.js' import { ToAddressRequiredMessage } from './ToAddressRequiredMessage.js' import { useMessageQueue } from './useMessageQueue.js' type WarningMessagesProps = BoxProps & { route?: Route allowInteraction?: boolean } export const WarningMessages: React.FC = ({ route, allowInteraction, ...props }) => { const { messages, hasMessages } = useMessageQueue(route, allowInteraction) const getMessage = () => { switch (messages[0]?.id) { case 'MISSING_ROUTE_REQUIRED_ACCOUNT': return ( ) case 'INSUFFICIENT_FUNDS': return case 'INSUFFICIENT_GAS': return ( ) case 'MIN_FROM_AMOUNT_USD': return ( ) case 'ACCOUNT_NOT_DEPLOYED': return case 'ACCOUNT_DEPLOYED': return case 'TO_ADDRESS_REQUIRED': return default: return null } } return ( {getMessage()} ) }