/** * Advanced Rate Search Page * * Complete search form with all filters and best options display * Uses only ports available in CSV rates for origin/destination selection */ 'use client'; import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { Search, Loader2 } from 'lucide-react'; import { useQuery } from '@tanstack/react-query'; import { getAvailableOrigins, getAvailableDestinations, RoutePortInfo, } from '@/lib/api/rates'; import dynamic from 'next/dynamic'; // Import dynamique pour éviter les erreurs SSR avec Leaflet const PortRouteMap = dynamic(() => import('@/components/PortRouteMap'), { ssr: false, loading: () =>
Seuls les ports ayant des tarifs disponibles dans notre système sont proposés. {originsData?.total && ( ({originsData.total} ports d'origine disponibles) )}
Aucun port d'origine trouvé pour "{originSearch}"
{destinationsData.total} destination{destinationsData.total > 1 ? 's' : ''} disponible{destinationsData.total > 1 ? 's' : ''} depuis {selectedOriginPort?.name || searchForm.origin}
)} {showDestinationDropdown && filteredDestinations.length > 0 && (Aucune destination trouvée pour "{destinationSearch}"
Distance approximative et visualisation de la route
Formulaire complet avec toutes les options de transport