UNPKG

@babylimon/react-calendar-timeline

Version:
43 lines (35 loc) 1.2 kB
import React from 'react' import PropTypes from 'prop-types' import createReactContext from 'create-react-context' import { noop } from '../utility/generic' const defaultContextState = { registerScroll: () => { // eslint-disable-next-line console.warn('default registerScroll header used') return noop }, rightSidebarWidth: 0, leftSidebarWidth: 150, timeSteps: {} } const { Consumer, Provider } = createReactContext(defaultContextState) export class TimelineHeadersProvider extends React.Component { static propTypes = { children: PropTypes.element.isRequired, rightSidebarWidth: PropTypes.number, leftSidebarWidth: PropTypes.number.isRequired, //TODO: maybe this should be skipped? timeSteps: PropTypes.object.isRequired, registerScroll: PropTypes.func.isRequired, } render() { const contextValue = { rightSidebarWidth: this.props.rightSidebarWidth, leftSidebarWidth: this.props.leftSidebarWidth, timeSteps: this.props.timeSteps, registerScroll: this.props.registerScroll, } return <Provider value={contextValue}>{this.props.children}</Provider> } } export const TimelineHeadersConsumer = Consumer