|
|
export const timeToMinutes = (time: string): number => { |
|
|
const [hours, minutes] = time.split(':').map(Number); |
|
|
return hours * 60 + minutes; |
|
|
}; |
|
|
|
|
|
export const getPositionAndWidth = ( |
|
|
startTime: string, |
|
|
durationMinutes: number, |
|
|
timelineStart: string = '05:00', |
|
|
timelineEnd: string = '23:00' |
|
|
) => { |
|
|
const startMinutes = timeToMinutes(timelineStart); |
|
|
const endMinutes = timeToMinutes(timelineEnd); |
|
|
const totalMinutes = endMinutes - startMinutes; |
|
|
|
|
|
const currentStartMinutes = timeToMinutes(startTime); |
|
|
|
|
|
|
|
|
const left = ((currentStartMinutes - startMinutes) / totalMinutes) * 100; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const estimatedDurationMinutes = (durationMinutes); |
|
|
const width = (estimatedDurationMinutes / totalMinutes) * 100; |
|
|
|
|
|
return { left: `${left}%`, width: `${width}%` }; |
|
|
}; |
|
|
|