UNPKG

@babylimon/react-calendar-timeline

Version:
56 lines (53 loc) 1.95 kB
import React from 'react' import { TimelineMarkersConsumer } from './TimelineMarkersContext' import { TimelineMarkerType } from './markerType' import TodayMarker from './implementations/TodayMarker' import CustomMarker from './implementations/CustomMarker' import { TimelineStateConsumer } from '../timeline/TimelineStateContext' import CursorMarker from './implementations/CursorMarker' /** Internal component used in timeline to render markers registered */ const TimelineMarkersRenderer = () => { return ( <TimelineStateConsumer> {({ getLeftOffsetFromDate }) => ( <TimelineMarkersConsumer> {({ markers }) => { return markers.map(marker => { switch (marker.type) { case TimelineMarkerType.Today: return ( <TodayMarker key={marker.id} getLeftOffsetFromDate={getLeftOffsetFromDate} renderer={marker.renderer} interval={marker.interval} /> ) case TimelineMarkerType.Custom: return ( <CustomMarker key={marker.id} renderer={marker.renderer} date={marker.date} getLeftOffsetFromDate={getLeftOffsetFromDate} /> ) case TimelineMarkerType.Cursor: return ( <CursorMarker key={marker.id} renderer={marker.renderer} getLeftOffsetFromDate={getLeftOffsetFromDate} /> ) default: return null } }) }} </TimelineMarkersConsumer> )} </TimelineStateConsumer> ) } export default TimelineMarkersRenderer