import React, { type ReactNode } from 'react'; import { classNames } from '../../../utils'; import { useId } from '../../../hooks/useId'; import { useLocale } from '../../GrapesProvider'; import { useTimelineItemContext } from './useTimelineItemContext'; import styles from './TimelineItem.module.css'; export type TimelineItemProps = { /** * The element's date */ date: Date; /** * Content to render */ children: ReactNode; /** * Function called to render date */ renderDate?: (date: Date, locale: string) => string; }; export const TimelineItem = ({ date, children, renderDate, }: TimelineItemProps) => { const labelId = useId(); const locale = useLocale(); const { fit, renderDate: contextRenderDate } = useTimelineItemContext(); return (
  • {renderDate ? renderDate(date, locale) : contextRenderDate(date, locale)}
    {children}
  • ); };