Arpit-Bansal's picture
added demo frontend
d35d9d7
export const timeToMinutes = (time: string): number => {
const [hours, minutes] = time.split(':').map(Number);
return hours * 60 + minutes;
};
export const getPositionAndWidth = (
startTime: string,
durationMinutes: number, // or calculate from end time if available
timelineStart: string = '05:00',
timelineEnd: string = '23:00'
) => {
const startMinutes = timeToMinutes(timelineStart);
const endMinutes = timeToMinutes(timelineEnd);
const totalMinutes = endMinutes - startMinutes;
const currentStartMinutes = timeToMinutes(startTime);
// Calculate position percentage
const left = ((currentStartMinutes - startMinutes) / totalMinutes) * 100;
// Calculate width percentage
// Note: The data doesn't explicitly have duration or end time for blocks,
// but it has estimated_km. We might need to estimate duration or just show a fixed width
// or assume a speed.
// Wait, the blocks have departure_time. Do they have arrival time?
// The JSON shows: "departure_time": "07:00", "estimated_km": 153.0.
// It doesn't have arrival time.
// I'll assume an average speed to calculate duration for visualization.
// e.g., 60 km/h? 153 km -> ~2.5 hours.
const estimatedDurationMinutes = (durationMinutes);
const width = (estimatedDurationMinutes / totalMinutes) * 100;
return { left: `${left}%`, width: `${width}%` };
};