import React from 'react'; import type { Trainset } from '../types'; import { getPositionAndWidth, timeToMinutes } from '../utils/timeUtils'; interface ScheduleTimelineProps { trainsets: Trainset[]; } const AVERAGE_SPEED_KMPH = 35; const ScheduleTimeline: React.FC = ({ trainsets }) => { const timelineStart = '05:00'; const timelineEnd = '23:00'; // Filter only revenue service trains or those with blocks const activeTrainsets = trainsets.filter(t => t.service_blocks && t.service_blocks.length > 0); const hours = []; for (let i = 5; i <= 23; i++) { hours.push(i); } return (

Schedule Timeline

{/* Time Header */}
Train ID
{hours.map(hour => (
{hour}:00
))}
{/* Rows */}
{activeTrainsets.map(train => (
{train.trainset_id}
{train.service_blocks?.map((block, index) => { const durationHours = block.estimated_km / AVERAGE_SPEED_KMPH; const durationMinutes = durationHours * 60; const { left, width } = getPositionAndWidth( block.departure_time, durationMinutes, timelineStart, timelineEnd ); return (
{/* Tooltip */}

{block.block_id}

{block.origin} → {block.destination}

Dep: {block.departure_time}

Est. Dist: {block.estimated_km} km

); })}
))}
); }; export default ScheduleTimeline;