diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-10-01 14:14:30 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-10-01 14:14:30 +0200 |
commit | da83d9e91d419e1c843e3017098d25dbde22b500 (patch) | |
tree | 0cf3860171062794ef66a292f46fdd62e66dc780 /packages/gitbook-core/src/lib/createContext.js | |
parent | 2cf507a807b1070a445cadb28317a41385fbe50b (diff) | |
download | gitbook-da83d9e91d419e1c843e3017098d25dbde22b500.zip gitbook-da83d9e91d419e1c843e3017098d25dbde22b500.tar.gz gitbook-da83d9e91d419e1c843e3017098d25dbde22b500.tar.bz2 |
Change api for registering components
Diffstat (limited to 'packages/gitbook-core/src/lib/createContext.js')
-rw-r--r-- | packages/gitbook-core/src/lib/createContext.js | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/packages/gitbook-core/src/lib/createContext.js b/packages/gitbook-core/src/lib/createContext.js index fdc0e0c..1b834e4 100644 --- a/packages/gitbook-core/src/lib/createContext.js +++ b/packages/gitbook-core/src/lib/createContext.js @@ -1,15 +1,22 @@ /* eslint-disable no-console */ -const { Record } = require('immutable'); const Redux = require('redux'); const ReduxThunk = require('redux-thunk').default; +const Plugin = require('./models/Plugin'); +const Context = require('./models/Context'); const coreReducers = require('../reducers'); const composeReducer = require('./composeReducer'); -const GitBookContext = Record({ - store: null, - actions: {} -}, 'GitBookContext'); +const Components = require('./actions/components'); +const I18n = require('./actions/i18n'); +const Navigation = require('./actions/navigation'); + +const corePlugin = Plugin({ + reduce: coreReducers, + actions: { + Components, I18n, Navigation + } +}); /** * Create a new context containing redux store from an initial state and a list of plugins. @@ -17,12 +24,14 @@ const GitBookContext = Record({ * * @param {Array<Plugin>} plugins * @param {Object} initialState - * @return {GitBookContext} context + * @return {Context} context */ function createContext(plugins, initialState) { + plugins = [corePlugin].concat(plugins); + // Compose the reducer from core with plugins const pluginReducers = plugins.map(plugin => plugin.reduce); - const reducer = composeReducer(...[coreReducers].concat(pluginReducers)); + const reducer = composeReducer(pluginReducers); // Get actions from all plugins const actions = plugins.reduce((accu, plugin) => { @@ -43,7 +52,7 @@ function createContext(plugins, initialState) { plugin.init(store.dispatch, store.getState, actions); }); - return GitBookContext({ + return Context({ store, actions }); |