import React from 'react';
import styled from '@emotion/styled';
import * as Timeline from 'sentry/components/replays/breadcrumbs/timeline';
import {countColumns, formatTime} from '../utils';
type LineStyle = 'dotted' | 'solid' | 'none';
const Line = styled(Timeline.Col)<{lineStyle: LineStyle}>`
border-right: 1px ${p => p.lineStyle} ${p => p.theme.gray100};
text-align: right;
`;
function Gridlines({
children,
cols,
lineStyle,
remaining,
}: {
cols: number;
lineStyle: LineStyle;
remaining: number;
children?: (i: number) => React.ReactNode;
}) {
return (
{[...Array(cols)].map((_, i) => (
{children ? children(i) : null}
))}
);
}
type Props = {
duration: number;
width: number;
minWidth?: number;
};
export function MajorGridlines({duration, minWidth = 50, width}: Props) {
const {timespan, cols, remaining} = countColumns(duration, width, minWidth);
return (
{i => {formatTime((i + 1) * timespan)}}
);
}
export function MinorGridlines({duration, minWidth = 20, width}: Props) {
const {cols, remaining} = countColumns(duration, width, minWidth);
return ;
}