aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/app
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2026-04-20 16:23:00 +0200
committerAriel Costas Guerrero <ariel@costas.dev>2026-04-20 16:23:00 +0200
commit32574981f659a6c59faf968c8dbfe6eda3c632d6 (patch)
tree455f7c2de0253c933309d3dc4757411857e389a4 /src/frontend/app
parent594b106010c0a5f9de38f6f0f3bda9b5f92f6699 (diff)
Mostrar procedencia en rutas interurbanascopilot/update-coruna-realtime-processor
Closes #154
Diffstat (limited to 'src/frontend/app')
-rw-r--r--src/frontend/app/api/schema.ts1
-rw-r--r--src/frontend/app/components/arrivals/ArrivalCard.tsx16
2 files changed, 15 insertions, 2 deletions
diff --git a/src/frontend/app/api/schema.ts b/src/frontend/app/api/schema.ts
index 864ea57..d900055 100644
--- a/src/frontend/app/api/schema.ts
+++ b/src/frontend/app/api/schema.ts
@@ -11,6 +11,7 @@ export const HeadsignInfoSchema = z.object({
badge: z.string().optional().nullable(),
destination: z.string().nullable(),
marquee: z.string().optional().nullable(),
+ origin: z.string().optional().nullable(),
});
export const ArrivalPrecisionSchema = z.enum([
diff --git a/src/frontend/app/components/arrivals/ArrivalCard.tsx b/src/frontend/app/components/arrivals/ArrivalCard.tsx
index 51e0803..3aae65e 100644
--- a/src/frontend/app/components/arrivals/ArrivalCard.tsx
+++ b/src/frontend/app/components/arrivals/ArrivalCard.tsx
@@ -34,7 +34,7 @@ const AutoMarquee = ({ text }: { text: string }) => {
if (!el) return;
const checkScroll = () => {
- const charWidth = 8;
+ const charWidth = 12;
const availableWidth = el.offsetWidth;
const textWidth = text.length * charWidth;
setShouldScroll(textWidth > availableWidth);
@@ -252,10 +252,22 @@ export const ArrivalCard: React.FC<ArrivalCardProps> = ({
{operator && (
<span className="text-xs font-mono text-slate-700 dark:text-slate-200 font-medium shrink-0">
{operator}
+ {headsign.destination || headsign.origin ? (
+ <>&nbsp;·&nbsp;</>
+ ) : (
+ ""
+ )}
+ </span>
+ )}
+ {headsign.origin && (
+ <span className="text-xs font-mono text-slate-500 dark:text-slate-400 shrink-0">
+ Proc: {headsign.origin}{" "}
{headsign.marquee && <>&nbsp;·&nbsp;</>}
</span>
)}
- {headsign.marquee && <AutoMarquee text={headsign.marquee} />}
+ {headsign.marquee && (
+ <AutoMarquee text={"Via: " + headsign.marquee} />
+ )}
</div>
</div>
</div>