diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-09-05 14:02:49 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-09-05 14:02:49 +0200 |
commit | ff31514c669a7c9b04ee69c447dcf9e2da39f3da (patch) | |
tree | b81b9bc9b12356dc1d9f7d8f8208be5631cc3d44 /packages/gitbook-core/src | |
parent | 3f1ec310ca0c634e1f63a1e00e485ea93916e810 (diff) | |
download | gitbook-ff31514c669a7c9b04ee69c447dcf9e2da39f3da.zip gitbook-ff31514c669a7c9b04ee69c447dcf9e2da39f3da.tar.gz gitbook-ff31514c669a7c9b04ee69c447dcf9e2da39f3da.tar.bz2 |
Start bootstraping rendering with react in GitBook
Diffstat (limited to 'packages/gitbook-core/src')
-rw-r--r-- | packages/gitbook-core/src/components/Application.js | 10 | ||||
-rw-r--r-- | packages/gitbook-core/src/components/InjectedComponent.js | 6 | ||||
-rw-r--r-- | packages/gitbook-core/src/index.js | 2 | ||||
-rw-r--r-- | packages/gitbook-core/src/renderComponent.js | 25 |
4 files changed, 30 insertions, 13 deletions
diff --git a/packages/gitbook-core/src/components/Application.js b/packages/gitbook-core/src/components/Application.js deleted file mode 100644 index 3414a37..0000000 --- a/packages/gitbook-core/src/components/Application.js +++ /dev/null @@ -1,10 +0,0 @@ -const React = require('react'); -const { InjectedComponent } = require('./components/InjectedComponent'); - -const Application = React.createClass({ - render() { - return <InjectedComponent matching={{ role: 'Body' }} /> - } -}); - -module.exports = Application; diff --git a/packages/gitbook-core/src/components/InjectedComponent.js b/packages/gitbook-core/src/components/InjectedComponent.js index f8e5b04..39b48b2 100644 --- a/packages/gitbook-core/src/components/InjectedComponent.js +++ b/packages/gitbook-core/src/components/InjectedComponent.js @@ -1,5 +1,5 @@ const React = require('react'); -const connect = require('./connect'); +const ReactRedux = require('react-redux'); const UnsafeComponent = require('./UnsafeComponent'); const { findMatchingComponents } = require('../actions/components'); @@ -65,11 +65,11 @@ function mapStateToProps(state, props) { } module.exports = { - InjectedComponent: connect(InjectedComponentSet, (state, props) => { + InjectedComponent: ReactRedux.connect(InjectedComponentSet, (state, props) => { const result = mapStateToProps(state, props); result.components = result.components.slice(0, 1); result.withContainer = false; return result; }), - InjectedComponentSet: connect(InjectedComponentSet, mapStateToProps) + InjectedComponentSet: ReactRedux.connect(InjectedComponentSet, mapStateToProps) }; diff --git a/packages/gitbook-core/src/index.js b/packages/gitbook-core/src/index.js index dcd7580..4a2f21f 100644 --- a/packages/gitbook-core/src/index.js +++ b/packages/gitbook-core/src/index.js @@ -5,6 +5,7 @@ const connect = require('./connect'); const createPlugin = require('./createPlugin'); const createReducer = require('./createReducer'); const createStore = require('./createStore'); +const renderComponent = require('./renderComponent'); module.exports = { ACTIONS, @@ -12,6 +13,7 @@ module.exports = { createPlugin, createReducer, createStore, + renderComponent, registerComponent, InjectedComponent, InjectedComponentSet diff --git a/packages/gitbook-core/src/renderComponent.js b/packages/gitbook-core/src/renderComponent.js new file mode 100644 index 0000000..365a037 --- /dev/null +++ b/packages/gitbook-core/src/renderComponent.js @@ -0,0 +1,25 @@ +const React = require('react'); +const Helmet = require('react-helmet'); +const ReactRedux = require('react-redux'); +const { InjectedComponent } = require('./components/InjectedComponent'); + +/** + * Render a registered component from a store. + * This method is intended for server-side use in "gitbook". + * + * @param {ReduxStore} store + * @param {Descriptor} matching + * @return {Object} { el, meta } + */ +function renderComponent(store, matching) { + const el = ( + <ReactRedux.Provider store={store}> + <InjectedComponent matching={matching} /> + </ReactRedux.Provider> + ); + const head = Helmet.rewind(); + + return { el, head }; +} + +module.exports = renderComponent; |