diff options
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/Estimates.tsx | 12 | ||||
| -rw-r--r-- | src/pages/Map.tsx | 16 | ||||
| -rw-r--r-- | src/pages/StopList.tsx | 8 |
3 files changed, 19 insertions, 17 deletions
diff --git a/src/pages/Estimates.tsx b/src/pages/Estimates.tsx index 900ffc5..90745da 100644 --- a/src/pages/Estimates.tsx +++ b/src/pages/Estimates.tsx @@ -1,6 +1,6 @@ import { JSX, useEffect, useState } from "react"; import { useParams } from "react-router"; -import { StopDataProvider } from "../data/StopDataProvider"; +import StopDataProvider from "../data/StopDataProvider"; import { Star } from 'lucide-react'; import "../styles/Estimates.css"; import { RegularTable } from "../components/RegularTable"; @@ -22,8 +22,6 @@ export interface StopDetails { }[] } -const sdp = new StopDataProvider(); - const loadData = async (stopId: string) => { const resp = await fetch(`/api/GetStopEstimates?id=${stopId}`); return await resp.json(); @@ -44,20 +42,20 @@ export function Estimates(): JSX.Element { }) - sdp.pushRecent(parseInt(params.stopId ?? "")); + StopDataProvider.pushRecent(parseInt(params.stopId ?? "")); setFavourited( - sdp.isFavourite(parseInt(params.stopId ?? "")) + StopDataProvider.isFavourite(parseInt(params.stopId ?? "")) ); }, [params.stopId]); const toggleFavourite = () => { if (favourited) { - sdp.removeFavourite(parseInt(params.stopId ?? "")); + StopDataProvider.removeFavourite(parseInt(params.stopId ?? "")); setFavourited(false); } else { - sdp.addFavourite(parseInt(params.stopId ?? "")); + StopDataProvider.addFavourite(parseInt(params.stopId ?? "")); setFavourited(true); } } diff --git a/src/pages/Map.tsx b/src/pages/Map.tsx index 9abb7a3..af95bf9 100644 --- a/src/pages/Map.tsx +++ b/src/pages/Map.tsx @@ -1,4 +1,4 @@ -import { StopDataProvider, Stop } from "../data/StopDataProvider"; +import StopDataProvider, { Stop } from "../data/StopDataProvider"; import 'leaflet/dist/leaflet.css' import 'react-leaflet-markercluster/styles' @@ -20,8 +20,6 @@ const icon = new Icon({ shadowSize: [41, 41] }); -const sdp = new StopDataProvider(); - // Componente auxiliar para detectar cambios en el mapa const MapEventHandler = () => { const { updateMapState } = useApp(); @@ -43,9 +41,17 @@ export function StopMap() { const { mapState } = useApp(); useEffect(() => { - sdp.getStops().then((stops) => { setStops(stops); }); + StopDataProvider.getStops().then((stops) => { setStops(stops); }); }, []); + const getDisplayName = (stop: Stop): string => { + if (typeof stop.name === 'string') { + return stop.name; + } + + return stop.name.intersect || stop.name.original; + } + return ( <MapContainer center={mapState.center} @@ -63,7 +69,7 @@ export function StopMap() { {stops.map((stop) => ( <Marker key={stop.stopId} position={[stop.latitude, stop.longitude] as LatLngTuple} icon={icon}> <Popup> - <Link to={`/estimates/${stop.stopId}`}>{stop.name}</Link> + <Link to={`/estimates/${stop.stopId}`}>{getDisplayName(stop)}</Link> <br /> {stop.lines.map((line) => ( <LineIcon key={line} line={line} /> diff --git a/src/pages/StopList.tsx b/src/pages/StopList.tsx index 72cccda..449ae84 100644 --- a/src/pages/StopList.tsx +++ b/src/pages/StopList.tsx @@ -1,10 +1,8 @@ import { useEffect, useMemo, useState } from "react"; -import { Stop, StopDataProvider } from "../data/StopDataProvider"; +import StopDataProvider, { Stop } from "../data/StopDataProvider"; import StopItem from "../components/StopItem"; import Fuse from "fuse.js"; -const sdp = new StopDataProvider(); - const placeholders = [ "Urzaiz", "Gran Vía", @@ -22,7 +20,7 @@ export function StopList() { const [searchResults, setSearchResults] = useState<Stop[] | null>(null); useEffect(() => { - sdp.getStops().then((stops: Stop[]) => setData(stops)) + StopDataProvider.getStops().then((stops: Stop[]) => setData(stops)) }, []); const handleStopSearch = (event: React.ChangeEvent<HTMLInputElement>) => { @@ -39,7 +37,7 @@ export function StopList() { }, [data]) const recentStops = useMemo(() => { - const recent = sdp.getRecent(); + const recent = StopDataProvider.getRecent(); if (recent.length === 0) return null; |
