import { memo } from "preact/compat"; import { useRef } from "preact/hooks"; import { twMerge } from "tailwind-merge"; import RouteScheduleFooter from "../RouteScheduleFooter"; import RouteScheduleHeader from "../RouteScheduleHeader"; import RouteStop from "../RouteStop"; import ShadowOverflow from "../ShadowOverflow"; import useMapContext from "../utils/hooks/useMapContext"; import useRealtimeStopSequences from "../utils/hooks/useRealtimeStopSequences"; import useScrollTo from "../utils/hooks/useScrollTo"; import type { RealtimeStop } from "mobility-toolbox-js/types"; import type { HTMLAttributes, PreactDOMAttributes } from "preact"; export type RouteScheduleProps = { className?: string; } & HTMLAttributes & PreactDOMAttributes; function RouteSchedule({ className }: RouteScheduleProps) { const { trainId } = useMapContext(); const stopSequences = useRealtimeStopSequences(trainId); const ref = useRef(); useScrollTo(ref, "[data-station-passed=false]", [stopSequences]); if (!stopSequences?.[0]) { return null; } const stopSequence = stopSequences[0]; return ( <>
{stopSequence.stations.map((stop: RealtimeStop, index: number) => { const { arrivalTime, departureTime, stationId, stationName } = stop; return ( ); })}
); } export default memo(RouteSchedule);