diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/frontend/app/components/StopAlert.css | 13 | ||||
| -rw-r--r-- | src/frontend/app/components/StopAlert.tsx | 20 | ||||
| -rw-r--r-- | src/frontend/app/data/StopDataProvider.ts | 5 | ||||
| -rw-r--r-- | src/frontend/public/pwa-worker.js | 2 | ||||
| -rw-r--r-- | src/frontend/public/stops/vigo.json | 108 |
5 files changed, 93 insertions, 55 deletions
diff --git a/src/frontend/app/components/StopAlert.css b/src/frontend/app/components/StopAlert.css index 2ba3baa..c1d9a0a 100644 --- a/src/frontend/app/components/StopAlert.css +++ b/src/frontend/app/components/StopAlert.css @@ -72,7 +72,7 @@ } .stop-alert-compact .stop-alert-title { - font-size: 0.85rem; + font-size: 0.95rem; } .stop-alert-message { @@ -81,17 +81,6 @@ } .stop-alert-compact .stop-alert-message { - font-size: 0.8rem; -} - -.stop-alert-alternate-codes { font-size: 0.85rem; - margin-top: 0.25rem; - font-style: italic; - opacity: 0.8; -} - -.stop-alert-compact .stop-alert-alternate-codes { - font-size: 0.75rem; } diff --git a/src/frontend/app/components/StopAlert.tsx b/src/frontend/app/components/StopAlert.tsx index a96f93e..d969108 100644 --- a/src/frontend/app/components/StopAlert.tsx +++ b/src/frontend/app/components/StopAlert.tsx @@ -1,5 +1,5 @@ -import React from "react"; -import { AlertCircle, Info } from "lucide-react"; +import React, { useMemo } from "react"; +import { AlertCircle, AlertOctagon, Info, TriangleAlert } from "lucide-react"; import type { Stop } from "~/data/StopDataProvider"; import "./StopAlert.css"; @@ -15,11 +15,21 @@ export const StopAlert: React.FC<StopAlertProps> = ({ stop, compact = false }) = return null; } - const isError = stop.cancelled === true; + const alertType = useMemo(() => { + if (stop.alert === "error") return "stop-alert-error"; + if (stop.alert === "warning") return "stop-alert-warning"; + return "stop-alert-info"; + }, [stop.alert]); + + const alertIcon = useMemo(() => { + if (stop.alert === "error") return <AlertOctagon />; + if (stop.alert === "warning") return <TriangleAlert />; + return <Info />; + }, [stop.alert]); return ( - <div className={`stop-alert ${isError ? 'stop-alert-error' : 'stop-alert-info'} ${compact ? 'stop-alert-compact' : ''}`}> - {isError ? <AlertCircle /> : <Info />} + <div className={`stop-alert ${alertType} ${compact ? 'stop-alert-compact' : ''}`}> + {alertIcon} <div className="stop-alert-content"> {stop.title && <div className="stop-alert-title">{stop.title}</div>} {stop.message && <div className="stop-alert-message">{stop.message}</div>} diff --git a/src/frontend/app/data/StopDataProvider.ts b/src/frontend/app/data/StopDataProvider.ts index 25a617b..799dcb5 100644 --- a/src/frontend/app/data/StopDataProvider.ts +++ b/src/frontend/app/data/StopDataProvider.ts @@ -18,10 +18,11 @@ export interface Stop { lines: string[]; favourite?: boolean; amenities?: string[]; - cancelled?: boolean; + title?: string; message?: string; - alternateCodes?: string[]; + alert?: "info"|"warning"|"error"; + cancelled?: boolean; } // In-memory cache and lookup map per region diff --git a/src/frontend/public/pwa-worker.js b/src/frontend/public/pwa-worker.js index 04364df..bfe4b7e 100644 --- a/src/frontend/public/pwa-worker.js +++ b/src/frontend/public/pwa-worker.js @@ -1,4 +1,4 @@ -const CACHE_VERSION = "20251106b"; +const CACHE_VERSION = "20251107a"; const STATIC_CACHE_NAME = `static-cache-${CACHE_VERSION}`; const STATIC_CACHE_ASSETS = [ "/favicon.ico", diff --git a/src/frontend/public/stops/vigo.json b/src/frontend/public/stops/vigo.json index b025348..3a4bc99 100644 --- a/src/frontend/public/stops/vigo.json +++ b/src/frontend/public/stops/vigo.json @@ -1140,6 +1140,7 @@ "6", "9B", "15B", + "15C", "28" ] }, @@ -1154,6 +1155,7 @@ "6", "9B", "15B", + "15C", "28" ] }, @@ -3518,7 +3520,10 @@ "15C", "16", "17" - ] + ], + "alert": "warning", + "title": "L17 no realiza parada", + "message": "Con motivo de las atracciones navideñas, la línea 17 no realiza parada en esta ubicación.\nSe puede tomar en Urzaiz, 13 (cruce República Argentina).\n" }, { "stopId": 3240, @@ -3564,7 +3569,8 @@ "latitude": 42.226287696, "longitude": -8.737475832, "lines": [ - "15B" + "15B", + "15C" ] }, { @@ -6039,7 +6045,11 @@ "amenities": [ "shelter", "display" - ] + ], + "cancelled": true, + "alert": "error", + "title": "Cerrada por navidad", + "message": "Con motivo de las atracciones navideñas, esta parada queda anulada.\nLíneas C3, 10, N1, 5B, 16 y 17 en García Barbón, 43 (restaurante Porto Santo).\nLíneas 4A y 4C (dir. Coia), 7, 12B, 16 y 17 se pueden tomar en Colón, 26 (oficina Banco Sabadell).\n" }, { "stopId": 5530, @@ -6059,7 +6069,11 @@ "amenities": [ "shelter", "display" - ] + ], + "cancelled": true, + "alert": "error", + "title": "Cerrada por navidad", + "message": "Con motivo de las atracciones navideñas, esta parada queda anulada.\nLíneas C3 y 10 se pueden tomar en Rosalía de Castro 4 (detrás de ABANCA).\nResto de líneas en García Barbón 28 (pasando Alfonso XIII)\n" }, { "stopId": 5540, @@ -6078,7 +6092,10 @@ "24", "H2", "PSA 1" - ] + ], + "alert": "warning", + "title": "Líneas C3 y 10 no realizan parada", + "message": "Con motivo de las atracciones navideñas, las líneas C3 y 10 realizan\nprovisionalmente la parada en Rúa Oporto 28 (calle perpendicular a la parada).\n" }, { "stopId": 5560, @@ -7362,19 +7379,15 @@ "9B", "15B", "15C", - "24", - "28", - "N4" - ], - "cancelled": true, - "title": "Parada movida a Colón 12", - "alternateCodes": [ - 20208 + "24" ], "amenities": [ "shelter", "display" - ] + ], + "cancelled": true, + "title": "Parada movida a Colón 12", + "message": "Con motivo del corte por las atracciones navideñas, las líneas se deben coger en Colón 12 (20208), excepto la línea 9B que arranca en Urzaiz-Príncipe." }, { "stopId": 6640, @@ -7604,7 +7617,10 @@ "N4", "H1", "VTS" - ] + ], + "alert": "warning", + "title": "L24 no realiza parada", + "message": "Con motivo de las atracciones navideñas, la línea 24 no realiza parada en esta ubicación.\nSe puede tomar en Areal (aduana), antes del semáforo de Colón.\n" }, { "stopId": 6880, @@ -9787,7 +9803,8 @@ "latitude": 42.169776602, "longitude": -8.678942156, "lines": [ - "A" + "A", + "15C" ] }, { @@ -10145,6 +10162,17 @@ ] }, { + "stopId": 9030, + "name": { + "original": "Xestoso (B)" + }, + "latitude": 42.207537397, + "longitude": -8.670071905, + "lines": [ + "15B" + ] + }, + { "stopId": 9040, "name": { "original": "Estrada das Plantas (cruce Camiño Monte Vello)" @@ -10325,10 +10353,12 @@ "10", "15B", "15C", - "24", - "28", - "N4" - ] + "24" + ], + "cancelled": true, + "alert": "error", + "title": "Cerrada por navidad", + "message": "Con motivo de las atracciones navideñas, esta parada queda anulada.\nLínea 9B comienza en Urzaiz-Príncipe.\nLínea 24 se puede tomar en Colón 12 (provisional).\nResto de líneas en Marqués de Valladares (fronte 19) - subiendo Reconquista, primera calle a la derecha.\n" }, { "stopId": 14122, @@ -14950,10 +14980,12 @@ "9B", "10", "15B", - "15C", - "28", - "N4" - ] + "15C" + ], + "cancelled": true, + "alert": "error", + "title": "Cerrada por navidad", + "message": "Con motivo de las atracciones navideñas, esta parada queda anulada.\nLa parada más cercana es Cánovas del Castillo, 18 (frente CC A Laxe).\n" }, { "stopId": 20195, @@ -15019,18 +15051,15 @@ "10", "15B", "15C", - "24", - "28", - "N4" - ], - "cancelled": true, - "title": "Parada movida a Marqués de Valladares (fronte 19)", - "alternateCodes": [ - 20206 + "24" ], "amenities": [ "shelter" - ] + ], + "cancelled": true, + "alert": "error", + "title": "Parada movida a Marqués de Valladares (fronte 19)", + "message": "Con motivo del corte por las atracciones navideñas, las líneas se deben coger en Marqués de Valladares (fronte 19), excepto la línea 9B que arranca en Urzaiz-Príncipe y la 24 que para en Colón 12 (provisional)." }, { "stopId": 20199, @@ -15068,8 +15097,16 @@ "latitude": 42.238271922, "longitude": -8.723353532, "lines": [ + "C1", "C3d", - "10" + "A", + "5A", + "9B", + "10", + "15B", + "15C", + "28", + "N4" ] }, { @@ -15090,7 +15127,8 @@ "28", "N4" ], - "title": "Parada provisional sin datos" + "title": "Parada provisional sin datos", + "message": "Parada provisional donde paran las líneas de Policarpo Sanz 40 *exceptuando 9B*" }, { "stopId": 20209, |
