tinper-mirrorx
Version:
A React framework.
85 lines (58 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Router;
exports.getHistory = getHistory;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _createBrowserHistory = require('history/createBrowserHistory');
var _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);
var _createHashHistory = require('history/createHashHistory');
var _createHashHistory2 = _interopRequireDefault(_createHashHistory);
var _createMemoryHistory = require('history/createMemoryHistory');
var _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);
var _reactRouterRedux = require('react-router-redux');
var _defaults = require('./defaults');
var _middleware = require('./middleware');
var _actions = require('./actions');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var history = void 0;
function Router(_ref) {
var _ref$history = _ref.history,
history = _ref$history === undefined ? getHistory() : _ref$history,
children = _ref.children;
_actions.actions.routing = Object.keys(_reactRouterRedux.routerActions).reduce(function (memo, action) {
memo[action] = function () {
(0, _middleware.dispatch)(_reactRouterRedux.routerActions[action].apply(_reactRouterRedux.routerActions, arguments));
};
return memo;
}, {});
return _react2.default.createElement(
_reactRouterRedux.ConnectedRouter,
{ history: history },
children
);
}
Router.propTypes = {
children: _propTypes2.default.element.isRequired,
history: _propTypes2.default.object
};
function getHistory() {
if (history) {
return history;
}
var historyMode = _defaults.options.historyMode;
if (historyMode === 'browser') {
history = (0, _createBrowserHistory2.default)();
}
if (historyMode === 'hash') {
history = (0, _createHashHistory2.default)();
}
if (historyMode === 'memory') {
history = (0, _createMemoryHistory2.default)();
}
return history;
}