Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import React, { Component } from 'preact'; import PropTypes from 'prop-types'; import defaultTheme from '../theme'; /** * Custom theme provider for application */ class ThemeProvider extends Component { static propTypes = { theme: PropTypes.object.isRequired, }; getChildContext() { let { children, ...context } = this.props; if (context && context.theme) { context.theme = Object.assign(defaultTheme, context.theme || {}); } return context; } render({ children }) { return (children && children[0]) || null; } } export default ThemeProvider; |