All files / src/ThemeProvider ThemeProvider.js

0% Statements 0/11
0% Branches 0/9
100% Functions 0/0
0% Lines 0/10

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;