const React = require('react'); const GitBook = require('gitbook-core'); const Sidebar = require('./components/Sidebar'); const Body = require('./components/Body'); const reduceState = require('./reducers'); let ThemeBody = React.createClass({ propTypes: { // State page: GitBook.Shapes.Page, summary: GitBook.Shapes.Summary, sidebar: React.PropTypes.object, // Other props children: React.PropTypes.node }, render() { const { page, summary, children, sidebar } = this.props; return ( {sidebar.open ? ( ) : null} {children} ); } }); ThemeBody = GitBook.connect(ThemeBody, ({page, summary, sidebar}) => { console.log('connect!'); return { page, summary, sidebar }; }); module.exports = GitBook.createPlugin((dispatch, state) => { dispatch(GitBook.registerComponent(ThemeBody, { role: 'Body' })); }, reduceState);