UNPKG

connected-next-router

Version:
37 lines (36 loc) 1.27 kB
import ReactDOM from 'react-dom'; import { onLocationChanged } from './actions'; import locationFromUrl from './utils/locationFromUrl'; var patchRouter = function (Router, store) { var unpatchedMethods = { set: Reflect.get(Router.router, 'set'), }; Reflect.set(Router.router, 'set', function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (!unpatchedMethods.set) { return Promise.resolve(); } return new Promise(function (resolve, reject) { ReactDOM.unstable_batchedUpdates(function () { try { var result = Reflect.apply(unpatchedMethods.set, Router.router, args); if (result instanceof Promise) result.then(resolve, reject); else resolve(result); } catch (err) { reject(err); } store.dispatch(onLocationChanged(locationFromUrl(Router.asPath))); }); }); }); return function () { Reflect.set(Router.router, 'set', unpatchedMethods.set); }; }; export default patchRouter;