diff --git a/package-lock.json b/package-lock.json index 4c6b75f..bf1b2a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7389,12 +7389,12 @@ "dev": true }, "path-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/path-parser/-/path-parser-3.0.1.tgz", - "integrity": "sha512-6MFp3XsoMGN3rvBQ6a/SKy56SVRNn3EVcj79kI1YPKf0UdAwQ/Gbt/Jkr0AD87bQZtM4pMCdDGpo3S6ap61Twg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/path-parser/-/path-parser-4.0.4.tgz", + "integrity": "sha512-U71kuqOWLb/syIOvL3PuuoMYy1j9M709F3VfS8MqmSy+gTnIwY5CXuASKlhs+5DDAkmuDIML3vdW7Pna28E/cg==", "dev": true, "requires": { - "search-params": "1.3.0" + "search-params": "2.1.2" } }, "path-to-regexp": { @@ -7993,37 +7993,30 @@ } }, "route-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/route-node/-/route-node-2.0.3.tgz", - "integrity": "sha512-aeLm5HHcoq2m4Y2O78p8M2XwFoRpGAKWXkWB9qkuxQRLNd+m40U6L4a1BiEA1ZyalGk8TT/P4U5J2LjM5KJ+Aw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/route-node/-/route-node-3.1.0.tgz", + "integrity": "sha512-DAXQ7ufZOysQPHhNLpPdLDh8KLaFk30mZOaP0U0X7WT7K7A+t77TAsAC/RTvnV0UgGishmHJdP4xXEI+GR4RAg==", "dev": true, "requires": { - "path-parser": "3.0.1", - "search-params": "1.3.0" + "path-parser": "4.0.4", + "search-params": "2.1.2" } }, "router5": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/router5/-/router5-5.8.3.tgz", - "integrity": "sha1-/U9hBR8dLBXbQ1lyvoKMOrvUR/A=", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/router5/-/router5-6.1.2.tgz", + "integrity": "sha512-A+4JW9LXkjdqfBPHo54A+zaxb1SPXSe42unlZi6q/0+hu+VNKunJtQyUuwkktuSoz7pioBW/tiEtpTMgjzXYuw==", "dev": true, "requires": { - "route-node": "2.0.3", - "router5-transition-path": "5.1.1" - }, - "dependencies": { - "router5-transition-path": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/router5-transition-path/-/router5-transition-path-5.1.1.tgz", - "integrity": "sha512-sE2tb5bREigYszRiXb52QJ2Pz0Y1aZ3kwI1SmSEnE408drRDUhMNMVj4zJidYEK1CZPRAaaQ6ssO205eh9XZng==", - "dev": true - } + "route-node": "3.1.0", + "router5-transition-path": "5.3.0", + "symbol-observable": "1.2.0" } }, "router5-transition-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/router5-transition-path/-/router5-transition-path-5.0.0.tgz", - "integrity": "sha1-i+KmoJB+kwg6S31wVxP2JMxguGE=" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/router5-transition-path/-/router5-transition-path-5.3.0.tgz", + "integrity": "sha1-ET9+Cd/+5eIscnXCD+JZacC8FZk=" }, "run-async": { "version": "0.1.0", @@ -8068,9 +8061,9 @@ "dev": true }, "search-params": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/search-params/-/search-params-1.3.0.tgz", - "integrity": "sha1-uh4cAdy9ii5BolI29gLyy/cQ1og=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/search-params/-/search-params-2.1.2.tgz", + "integrity": "sha512-RToWw6ftSKU8awWFFXK7CxNblBrwDck800RjXxqcFICg4HP1DAI71f4eJlxUpV4mtuWe0ueAnlHrQX7UtbQVNA==", "dev": true }, "semantic-release": { @@ -8757,6 +8750,12 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, "table": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", diff --git a/package.json b/package.json index 743d7f5..0ba2849 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "babel-runtime": "^6.11.6", - "router5-transition-path": "5.0.0" + "router5-transition-path": "5.3.0" }, "devDependencies": { "babel-cli": "^6.16.0", @@ -69,7 +69,7 @@ "mocha": "^3.1.2", "rollup": "0.41.6", "rollup-plugin-babel": "^2.7.1", - "router5": "^5.0.0", + "router5": "^6.1.2", "semantic-release": "^15.1.7", "semantic-release-conventional-commits": "^2.0.0", "sinon": "^2.0.0-pre.3", @@ -77,7 +77,7 @@ "travis-deploy-once": "4.4.1" }, "peerDependencies": { - "router5": "^5.0.0", + "router5": "^6.1.2", "mobx": "^4.0.0" }, "scripts": { diff --git a/src/modules/RouterStore.js b/src/modules/RouterStore.js index 8e51f6e..3365bbd 100644 --- a/src/modules/RouterStore.js +++ b/src/modules/RouterStore.js @@ -1,5 +1,5 @@ import {observable, action} from 'mobx'; -import transitionPath from 'router5-transition-path'; +import transitionPath, {shouldUpdateNode} from 'router5-transition-path'; class RouterStore { @@ -16,6 +16,7 @@ class RouterStore { constructor() { this.navigate = this.navigate.bind(this); + this.shouldUpdateNode = this.shouldUpdateNode.bind(this); } setRouter(router) { @@ -43,7 +44,7 @@ class RouterStore { this.updateRoute('route', route); this.updateRoute('previousRoute', previousRoute); if (route) { - const {toActivate, toDeactivate, intersection} = transitionPath(route, previousRoute); + const {intersection, toActivate, toDeactivate} = transitionPath(route, previousRoute); this.intersectionNode = opts.reload ? '' : intersection; this.toActivate = toActivate; this.toDeactivate = toDeactivate; @@ -76,6 +77,9 @@ class RouterStore { this.router.navigate(name, params, opts); }; + // Utility to calculate which react routeNode should update + shouldUpdateNode = shouldUpdateNode; + } export default RouterStore;