import { Stack } from '@mui/material' import { useRoutes } from '../../hooks/useRoutes.js' import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js' import { useFieldActions } from '../../stores/form/useFieldActions.js' import { useFieldValues } from '../../stores/form/useFieldValues.js' import type { CardProps } from '../Card/Card.js' import { RouteNotFoundCard } from '../RouteCard/RouteNotFoundCard.js' import { RouteProviderCard, RouteProviderCardSkeleton, } from '../RouteCard/RouteProviderCard.js' export const LimitOrderRoutes: React.FC = (props) => { const { routes, isLoading, isFetching, isFetched } = useRoutes() const [toAddress, selectedRouteId] = useFieldValues( 'toAddress', 'selectedRouteId' ) const { setFieldValue } = useFieldActions() const { requiredToAddress } = useToAddressRequirements() const currentRoute = routes?.[0] if (!currentRoute && !isLoading && !isFetching && !isFetched) { return null } const toAddressUnsatisfied = currentRoute && requiredToAddress && !toAddress const allowInteraction = !toAddressUnsatisfied const activeRouteId = routes?.find((route) => route.id === selectedRouteId)?.id ?? currentRoute?.id return ( {isLoading && !currentRoute ? ( Array.from({ length: 2 }).map((_, index) => ( )) ) : !currentRoute ? ( ) : ( routes?.map((route) => ( setFieldValue('selectedRouteId', route.id) : undefined } /> )) )} ) }