import React, { useEffect } from 'react'; import { IcClose } from '../../res/icons'; import { useMapBackHandler } from '../../hooks/useMapBackHandler'; import { useMapStrings } from '../../hooks/useMapStrings'; import { useMapStore } from '../../state'; type ModeTab = { key: string; mode: google.maps.TravelMode | undefined; icon: React.ComponentType<{ size?: number; className?: string; strokeWidth?: number; fill?: string }>; }; export const RouteLoadingSheet: React.FC<{ selectedTransportMode: 'driving' | 'transit' | 'walking' | 'cycling'; setSelectedTransportMode: (m: 'driving' | 'transit' | 'walking' | 'cycling') => void; modeDurations: Record; routeError: string | null; modes: ModeTab[]; onCloseRoute: () => void; }> = ({ selectedTransportMode, setSelectedTransportMode, modeDurations, routeError, modes, onCloseRoute, }) => { const setRouteSheetOpen = useMapStore((s) => s.setRouteSheetOpen); const s = useMapStrings(); useEffect(() => { setRouteSheetOpen(true); return () => setRouteSheetOpen(false); }, [setRouteSheetOpen]); useMapBackHandler( () => { onCloseRoute(); return true; }, { priority: 500 }, ); return (
{selectedTransportMode === 'driving' ? s.route_driving : selectedTransportMode === 'transit' ? s.route_transit : selectedTransportMode === 'walking' ? s.route_walking : s.route_cycling}
{modes.map((m) => ( ))}
{routeError ? ( <>
{s.route_not_found}
{routeError}
{selectedTransportMode !== 'driving' && ( )} ) : ( <>
{s.route_calculating} )}
); };