diff --git a/web/client/examples/viewer/app.jsx b/web/client/examples/viewer/app.jsx index 8f078da948..49aa6f4aef 100644 --- a/web/client/examples/viewer/app.jsx +++ b/web/client/examples/viewer/app.jsx @@ -8,7 +8,6 @@ var React = require('react'); var {Provider} = require('react-redux'); -var Viewer = require('./containers/Viewer'); var {loadMapConfig} = require('../../actions/config'); var {loadLocale} = require('../../actions/locale'); @@ -18,23 +17,25 @@ var LocaleUtils = require('../../utils/LocaleUtils'); var Debug = require('../../components/development/Debug'); -var store = require('./stores/viewerstore'); - -ConfigUtils.loadConfiguration().then(() => { - const { configUrl, legacy } = ConfigUtils.getUserConfiguration('config', 'json'); - store.dispatch(loadMapConfig(configUrl, legacy)); - - let locale = LocaleUtils.getUserLocale(); - store.dispatch(loadLocale('../../translations', locale)); -}); require.ensure(['./plugins'], (require) => { var plugins = require('./plugins'); + var store = require('./stores/viewerstore')(plugins.reducers); + var Viewer = require('./containers/Viewer')(plugins.actions); + + + ConfigUtils.loadConfiguration().then(() => { + const { configUrl, legacy } = ConfigUtils.getUserConfiguration('config', 'json'); + store.dispatch(loadMapConfig(configUrl, legacy)); + + let locale = LocaleUtils.getUserLocale(); + store.dispatch(loadLocale('../../translations', locale)); + }); React.render( - {() => } + {() => } , document.getElementById('container') diff --git a/web/client/examples/viewer/containers/Viewer.jsx b/web/client/examples/viewer/containers/Viewer.jsx index 1fce834ff9..e2b377daf6 100644 --- a/web/client/examples/viewer/containers/Viewer.jsx +++ b/web/client/examples/viewer/containers/Viewer.jsx @@ -16,10 +16,6 @@ var ConfigUtils = require('../../../utils/ConfigUtils'); var {loadLocale} = require('../../../actions/locale'); var {changeMapView, clickOnMap, changeMousePointer} = require('../../../actions/map'); -var {getFeatureInfo, changeMapInfoState, purgeMapInfoResults} = require('../../../actions/mapInfo'); -var {activatePanel} = require('../actions/floatingPanel'); - -var {changeLayerProperties} = require('../../../actions/config'); var VMap = require('../components/Map'); var Localized = require('../../../components/I18N/Localized'); @@ -98,25 +94,22 @@ var Viewer = React.createClass({ } }); -module.exports = connect((state) => { - return { - mapConfig: state.mapConfig, - messages: state.locale ? state.locale.messages : null, - locale: state.locale ? state.locale.current : null, - mapInfo: state.mapInfo ? state.mapInfo : {enabled: false, responses: [], requests: []}, - floatingPanel: state.floatingPanel ? state.floatingPanel : {activeKey: ""}, - localeError: state.locale && state.locale.loadingError ? state.locale.loadingError : undefined - }; -}, dispatch => { - return bindActionCreators(assign({}, { - loadLocale: loadLocale.bind(null, '../../translations'), - changeMapView, - getFeatureInfo, - changeMapInfoState, - purgeMapInfoResults, - clickOnMap, - activatePanel, - changeMousePointer, - changeLayerProperties - }), dispatch); -})(Viewer); +module.exports = (actions) => { + return connect((state) => { + return { + mapConfig: state.mapConfig, + messages: state.locale ? state.locale.messages : null, + locale: state.locale ? state.locale.current : null, + mapInfo: state.mapInfo ? state.mapInfo : {enabled: false, responses: [], requests: []}, + floatingPanel: state.floatingPanel ? state.floatingPanel : {activeKey: ""}, + localeError: state.locale && state.locale.loadingError ? state.locale.loadingError : undefined + }; + }, dispatch => { + return bindActionCreators(assign({}, { + loadLocale: loadLocale.bind(null, '../../translations'), + changeMapView, + clickOnMap, + changeMousePointer + }, actions), dispatch); + })(Viewer); +}; diff --git a/web/client/examples/viewer/plugins/index.jsx b/web/client/examples/viewer/plugins/index.jsx index d241ba8d3a..0ccf21b284 100644 --- a/web/client/examples/viewer/plugins/index.jsx +++ b/web/client/examples/viewer/plugins/index.jsx @@ -3,31 +3,52 @@ var LangSelector = require('../../../components/I18N/LangSelector'); var BackgroundSwitcherTool = require("../components/BackgroundSwitcherTool"); var ViewerFloatingPanel = require("../components/ViewerFloatingPanel"); var GetFeatureInfo = require("../components/GetFeatureInfo"); + +var mapInfo = require('../../../reducers/mapInfo'); +var floatingPanel = require('../reducers/floatingPanel'); + + +var {getFeatureInfo, changeMapInfoState, purgeMapInfoResults} = require('../../../actions/mapInfo'); +var {activatePanel} = require('../actions/floatingPanel'); + +var {changeLayerProperties} = require('../../../actions/config'); + + var React = require('react'); -module.exports = (props) => { - return [ - , - , - , - , - - ]; +module.exports = { + components: (props) => { + return [ + , + , + , + , + + ]; + }, + reducers: {mapInfo, floatingPanel}, + actions: { + getFeatureInfo, + changeMapInfoState, + purgeMapInfoResults, + activatePanel, + changeLayerProperties + } }; diff --git a/web/client/examples/viewer/stores/viewerstore.js b/web/client/examples/viewer/stores/viewerstore.js index efb82f14c2..4c14386fcc 100644 --- a/web/client/examples/viewer/stores/viewerstore.js +++ b/web/client/examples/viewer/stores/viewerstore.js @@ -8,16 +8,15 @@ var {combineReducers} = require('redux'); var mapConfig = require('../../../reducers/config'); -var mapInfo = require('../../../reducers/mapInfo'); var locale = require('../../../reducers/locale'); -var floatingPanel = require('../reducers/floatingPanel'); var DebugUtils = require('../../../utils/DebugUtils'); +var assign = require('object-assign'); -const reducers = combineReducers({ - mapConfig, - locale, - mapInfo, - floatingPanel -}); - -module.exports = DebugUtils.createDebugStore(reducers, {}); +module.exports = (reducers) => { + const reducersObj = assign({}, reducers, { + mapConfig, + locale + }); + const allReducers = combineReducers(reducersObj); + return DebugUtils.createDebugStore(allReducers, {}); +};