grid-styletr
Version:
Responsive React grid system built with styletron-react
32 lines (25 loc) • 697 B
JavaScript
import {Component, Children} from 'react'
import PropTypes from 'prop-types'
export default class ThemeProvider extends Component {
constructor(props, ctx) {
super(props, ctx);
}
getChildContext() {
return {theme: this.props.theme}
}
render() {
return Children.only(this.props.children)
}
}
export const themeShape = {
breakpoints: PropTypes.arrayOf(PropTypes.number),
space: PropTypes.arrayOf(PropTypes.number),
fontSizes: PropTypes.arrayOf(PropTypes.number),
};
ThemeProvider.propTypes = {
theme: PropTypes.shape(themeShape).isRequired,
children: PropTypes.element.isRequired,
}
ThemeProvider.childContextTypes = {
theme: PropTypes.shape(themeShape),
}