import { useEffect, useMemo, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { Stop, StopDataProvider } from "../data/stopDataProvider"; const sdp = new StopDataProvider(); export function Home() { const [data, setData] = useState(null) const navigate = useNavigate(); useEffect(() => { sdp.getStops().then((stops: Stop[]) => setData(stops)) }, []); const handleStopSearch = async (event: React.FormEvent) => { event.preventDefault() const stopId = (event.target as HTMLFormElement).stopId.value const searchNumber = parseInt(stopId) if (data?.find(stop => stop.stopId === searchNumber)) { navigate(`/${searchNumber}`) } else { alert("Parada no encontrada") } } const favouritedStops = useMemo(() => { return data?.filter(stop => stop.favourite) ?? [] }, [data]) const recentStops = useMemo(() => { const recent = sdp.getRecent(); if (recent.length === 0) return null; return recent.map(stopId => data?.find(stop => stop.stopId === stopId) as Stop).reverse(); }, [data]) if (data === null) return

Loading...

return ( <>

UrbanoVigo Web

Paradas favoritas

{favouritedStops?.length == 1 && (

Accede a una parada y márcala como favorita para verla aquí.

)}

Recientes

Paradas

) }