import * as React from "react";
// Import types
import { BaseTimeFormat } from "../helpers/types";
// Import styles
import { TimelineStyled } from "../styles";
// Import hooks
import { useTimeline } from "../hooks";
const {
TimelineWrapper,
TimelineBox,
TimelineTime,
TimelineDividers,
TimelineDivider,
} = TimelineStyled;
interface TimelineProps {
isRTL?: boolean;
isBaseTimeFormat: BaseTimeFormat;
isSidebar: boolean;
dayWidth: number;
hourWidth: number;
numberOfHoursInDay: number;
offsetStartHoursRange: number;
sidebarWidth: number;
}
export function Timeline({
isRTL,
isBaseTimeFormat,
isSidebar,
dayWidth,
hourWidth,
numberOfHoursInDay,
offsetStartHoursRange,
sidebarWidth,
}: TimelineProps) {
const { time, dividers, formatTime } = useTimeline(
numberOfHoursInDay,
isBaseTimeFormat
);
const renderTime = (index: number) => (
{formatTime(index + offsetStartHoursRange)}
{renderDividers()}
);
const renderDividers = () =>
dividers.map((_, index) => (
));
return (
{time.map((_, index) => renderTime(index))}
);
}