// hacky way to listen for pushState/replaceState changes // per https://stackoverflow.com/a/25673911/680742 function wrapper (type) { let orig = history[type] return function () { let result = orig.apply(this, arguments) let e = new Event(type) e.arguments = arguments window.dispatchEvent(e) return result } } if (process.browser) { history.pushState = wrapper('pushState') history.replaceState = wrapper('replaceState') }