From 2063f8101b1c887e079e11c96755a2441aa1b57b Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Sun, 8 Mar 2026 23:01:01 +0100 Subject: Rename LineIcon -> RouteIcon, fix some size issues --- .../app/components/arrivals/ArrivalCard.css | 23 ++++ .../app/components/arrivals/ArrivalCard.tsx | 129 ++++++++++----------- .../app/components/arrivals/ReducedArrivalCard.tsx | 4 +- 3 files changed, 88 insertions(+), 68 deletions(-) (limited to 'src/frontend/app/components/arrivals') diff --git a/src/frontend/app/components/arrivals/ArrivalCard.css b/src/frontend/app/components/arrivals/ArrivalCard.css index 0e5af25..ee5f8e6 100644 --- a/src/frontend/app/components/arrivals/ArrivalCard.css +++ b/src/frontend/app/components/arrivals/ArrivalCard.css @@ -1,5 +1,28 @@ @import "../../tailwind.css"; +.arrival-card { + display: grid; + grid-template-areas: + "icon route minutes" + "meta meta meta"; + + grid-template-columns: auto 1fr auto; +} + +arrival-card--icon { + grid-area: icon; +} +.arrival-card--route { + grid-area: route; + min-width: 0; +} +.arrival-card--minutes { + grid-area: minutes; +} +.arrival-card--meta { + grid-area: meta; +} + .time-running { @apply bg-green-600/20 dark:bg-green-600/25 text-[#1a9e56] dark:text-[#22c55e]; } diff --git a/src/frontend/app/components/arrivals/ArrivalCard.tsx b/src/frontend/app/components/arrivals/ArrivalCard.tsx index f1fc1a5..b99d3aa 100644 --- a/src/frontend/app/components/arrivals/ArrivalCard.tsx +++ b/src/frontend/app/components/arrivals/ArrivalCard.tsx @@ -2,7 +2,7 @@ import { AlertTriangle, BusFront, LocateIcon } from "lucide-react"; import React, { useEffect, useMemo, useRef, useState } from "react"; import Marquee from "react-fast-marquee"; import { useTranslation } from "react-i18next"; -import LineIcon from "~/components/LineIcon"; +import RouteIcon from "~/components/RouteIcon"; import { type Arrival } from "../../api/schema"; import "./ArrivalCard.css"; @@ -188,21 +188,22 @@ export const ArrivalCard: React.FC = ({ -
- +
-
+ +
= ({ {headsign.destination} {headsign.marquee && ( -
+
)}
-
-
- {etaValue} - - {etaUnit} - -
-
+
+
+ + {etaValue}' + +
-
- {metaChips.map((chip, idx) => { - let chipColourClasses = ""; - switch (chip.tone) { - case "delay-ok": - chipColourClasses = - "bg-green-600/10 dark:bg-green-600/20 text-green-700 dark:text-green-300"; - break; - case "delay-warn": - chipColourClasses = - "bg-amber-600/10 dark:bg-yellow-600/20 text-amber-700 dark:text-yellow-300"; - break; - case "delay-critical": - chipColourClasses = - "bg-red-400/10 dark:bg-red-600/20 text-red-600 dark:text-red-300"; - break; - case "delay-early": - chipColourClasses = - "bg-blue-400/10 dark:bg-blue-600/20 text-blue-700 dark:text-blue-300"; - break; - case "warning": - chipColourClasses = - "bg-orange-400/10 dark:bg-orange-600/20 text-orange-700 dark:text-orange-300"; - break; - default: - chipColourClasses = - "bg-black/[0.04] dark:bg-white/[0.08] text-slate-500 dark:text-slate-400"; - } +
+ {metaChips.map((chip, idx) => { + let chipColourClasses = ""; + switch (chip.tone) { + case "delay-ok": + chipColourClasses = + "bg-green-600/10 dark:bg-green-600/20 text-green-700 dark:text-green-300"; + break; + case "delay-warn": + chipColourClasses = + "bg-amber-600/10 dark:bg-yellow-600/20 text-amber-700 dark:text-yellow-300"; + break; + case "delay-critical": + chipColourClasses = + "bg-red-400/10 dark:bg-red-600/20 text-red-600 dark:text-red-300"; + break; + case "delay-early": + chipColourClasses = + "bg-blue-400/10 dark:bg-blue-600/20 text-blue-700 dark:text-blue-300"; + break; + case "warning": + chipColourClasses = + "bg-orange-400/10 dark:bg-orange-600/20 text-orange-700 dark:text-orange-300"; + break; + default: + chipColourClasses = + "bg-black/[0.04] dark:bg-white/[0.08] text-slate-500 dark:text-slate-400"; + } - return ( - - {chip.kind === "gps" && ( - - )} - {chip.kind === "warning" && ( - - )} - {chip.kind === "vehicle" && ( - - )} - {chip.label} - - ); - })} -
+ return ( + + {chip.kind === "gps" && ( + + )} + {chip.kind === "warning" && ( + + )} + {chip.kind === "vehicle" && ( + + )} + {chip.label} + + ); + })}
); diff --git a/src/frontend/app/components/arrivals/ReducedArrivalCard.tsx b/src/frontend/app/components/arrivals/ReducedArrivalCard.tsx index 44c8eda..4ba08b1 100644 --- a/src/frontend/app/components/arrivals/ReducedArrivalCard.tsx +++ b/src/frontend/app/components/arrivals/ReducedArrivalCard.tsx @@ -1,7 +1,7 @@ import { AlertTriangle, BusFront, LocateIcon } from "lucide-react"; import React, { useMemo } from "react"; import { useTranslation } from "react-i18next"; -import LineIcon from "~/components/LineIcon"; +import RouteIcon from "~/components/RouteIcon"; import { type Arrival } from "../../api/schema"; import "./ArrivalCard.css"; @@ -145,7 +145,7 @@ export const ReducedArrivalCard: React.FC = ({ }`} >
-