aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/app/components/arrivals/ArrivalList.tsx
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2025-12-23 21:33:17 +0100
committerAriel Costas Guerrero <ariel@costas.dev>2025-12-23 21:33:17 +0100
commit4a866f5352a51916ddb9849b2d68213856196c9c (patch)
tree3ba01ba01d5f6931adaf708b76ffccdd798fc78b /src/frontend/app/components/arrivals/ArrivalList.tsx
parent87417c313b455ba0dee19708528cc8d0b830a276 (diff)
Full real-time page, coruña real time
Diffstat (limited to 'src/frontend/app/components/arrivals/ArrivalList.tsx')
-rw-r--r--src/frontend/app/components/arrivals/ArrivalList.tsx29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/frontend/app/components/arrivals/ArrivalList.tsx b/src/frontend/app/components/arrivals/ArrivalList.tsx
index b2394fb..0186682 100644
--- a/src/frontend/app/components/arrivals/ArrivalList.tsx
+++ b/src/frontend/app/components/arrivals/ArrivalList.tsx
@@ -1,25 +1,38 @@
import React from "react";
import { type Arrival } from "../../api/schema";
-import { ReducedArrivalCard } from "./ArrivalCard";
+import { ArrivalCard } from "./ArrivalCard";
+import { ReducedArrivalCard } from "./ReducedArrivalCard";
interface ArrivalListProps {
arrivals: Arrival[];
reduced?: boolean;
+ onArrivalClick?: (arrival: Arrival) => void;
}
export const ArrivalList: React.FC<ArrivalListProps> = ({
arrivals,
reduced,
+ onArrivalClick,
}) => {
+ const clickable = Boolean(onArrivalClick);
+
return (
<div className="flex flex-col gap-3">
- {arrivals.map((arrival, index) => (
- <ReducedArrivalCard
- key={`${arrival.route.shortName}-${index}`}
- arrival={arrival}
- reduced={reduced}
- />
- ))}
+ {arrivals.map((arrival, index) =>
+ reduced ? (
+ <ReducedArrivalCard
+ key={`${arrival.tripId}-${index}`}
+ arrival={arrival}
+ onClick={clickable ? () => onArrivalClick?.(arrival) : undefined}
+ />
+ ) : (
+ <ArrivalCard
+ key={`${arrival.tripId}-${index}`}
+ arrival={arrival}
+ onClick={clickable ? () => onArrivalClick?.(arrival) : undefined}
+ />
+ )
+ )}
</div>
);
};