rmux-router
Version:
7 lines (6 loc) • 1.83 kB
JavaScript
/*!
* rmux-router.js v0.0.1-alpha.0
* (c) 2018-2019 空鱼
* Released under the MIT License.
*/
;function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var connectedReactRouter=require("connected-react-router"),reactRouterDom=require("react-router-dom"),queryString=_interopDefault(require("querystring")),React=require("react"),React__default=_interopDefault(React),history=require("history");const globalRouteConfig=new Map,defaultLoading="loading...",LoadableComponent=({loader:e,loadding:t,...o})=>{const r=React.lazy(e),a=t||globalRouteConfig.get("loading")||"loading...";return React__default.createElement(React.Suspense,{fallback:a},React__default.createElement(r,Object.assign({},o)))},LazyRoute=e=>{const{loader:t,loading:o}=e;return React__default.createElement(reactRouterDom.Route,Object.assign({},e,{component:e=>{const r=queryString.parse(window.location.search);return React__default.createElement(LoadableComponent,{routeProps:e,loadding:o,loader:t,location:{...e.location,query:r},routerParams:e.match.params})}}))},RouterProvider=e=>{const{history:t=history.createBrowserHistory(),children:o,loading:r}=e;return globalRouteConfig.set("loading",r),React__default.createElement(reactRouterDom.Router,{history:t},o)};Object.keys(reactRouterDom).forEach((function(e){"default"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return reactRouterDom[e]}})})),Object.keys(history).forEach((function(e){"default"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return history[e]}})})),exports.routerRedux=connectedReactRouter,exports.LazyRoute=LazyRoute,exports.LoadableComponent=LoadableComponent,exports.RouterProvider=RouterProvider,exports.globalRouteConfig=globalRouteConfig;