UNPKG

twreporter-react

Version:

React-Redux site for The Reporter Foundation in Taiwan

59 lines (43 loc) 1.85 kB
'use strict'; exports.__esModule = true; exports['default'] = reduxReactRouter; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _redux = require('redux'); var _reactRouter = require('react-router'); var _historyMiddleware = require('./historyMiddleware'); var _historyMiddleware2 = _interopRequireDefault(_historyMiddleware); var _constants = require('./constants'); function reduxReactRouter(_ref) { var routes = _ref.routes; var createHistory = _ref.createHistory; var parseQueryString = _ref.parseQueryString; var stringifyQuery = _ref.stringifyQuery; var routerStateSelector = _ref.routerStateSelector; return function (createStore) { return function (reducer, initialState) { var baseCreateHistory = undefined; if (typeof createHistory === 'function') { baseCreateHistory = createHistory; } else if (createHistory) { baseCreateHistory = function () { return createHistory; }; } var history = _reactRouter.useRoutes(baseCreateHistory)({ routes: routes, parseQueryString: parseQueryString, stringifyQuery: stringifyQuery }); ['pushState', 'push', 'replaceState', 'replace', 'setState', 'go', 'goBack', 'goForward', 'listen', 'createLocation', 'match'].forEach(function (funcName) { if (!history.hasOwnProperty(funcName) && typeof history[funcName] === 'function') { throw new Error('History API does not support function: ' + funcName); } }); var store = _redux.applyMiddleware(_historyMiddleware2['default'](history))(createStore)(reducer, initialState); store.history = history; store[_constants.ROUTER_STATE_SELECTOR] = routerStateSelector; return store; }; }; } module.exports = exports['default'];