summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-core/src/components/ContextProvider.js
blob: 9b81e9bd483c77d99c3279b393ebe555337193bf (plain)
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
26
27
28
29
30
31
32
const React = require('react');
const { Provider } = require('react-redux');

/**
 * React component to provide a GitBook context to children components.
 */

const ContextProvider = React.createClass({
    propTypes: {
        context: React.PropTypes.object.isRequired,
        children: React.PropTypes.node
    },

    childContextTypes: {
        gitbookContext: React.PropTypes.object.isRequired
    },

    getChildContext() {
        const { context } = this.props;

        return {
            gitbookContext: context
        };
    },

    render() {
        const { context, children } = this.props;
        return <Provider store={context.store}>{children}</Provider>;
    }
});

module.exports = ContextProvider;