diff --git a/addon/ext/route.js b/addon/ext/route.js index efc60571..4728b096 100644 --- a/addon/ext/route.js +++ b/addon/ext/route.js @@ -3,7 +3,7 @@ import Ember from 'ember'; const { Mixin } = Ember; export default Mixin.create({ - activate() { + setupController() { this.get('perfService').routeActivated(this); this._super(...arguments); }, diff --git a/addon/services/ember-perf.js b/addon/services/ember-perf.js index 5ff0f685..c36e9265 100644 --- a/addon/services/ember-perf.js +++ b/addon/services/ember-perf.js @@ -62,16 +62,23 @@ export default Base.extend(Evented, { return; } transitionInfo.promise._emberPerfTransitionId = transitionCounter++; - let transitionRoute = transitionInfo.promise.targetName || get(transitionInfo.promise, 'intent.name'); - let transitionCtxt = get(transitionInfo.promise, 'intent.contexts') ? (get(transitionInfo.promise, 'intent.contexts') || [])[0] : null; + let transitionRoute = transitionInfo.promise.targetName || + get(transitionInfo.promise, 'intent.name') || + get(transitionInfo.promise, 'state.handlerInfos.lastObject.name'); + let transitionCtxt = get(transitionInfo.promise, 'intent.contexts') || null; let transitionUrl = get(transitionInfo.promise, 'intent.url'); assert('Must have at least a route name', transitionRoute); if (!transitionUrl) { if (transitionCtxt) { - transitionUrl = transitionInfo.promise.router.generate(transitionRoute, transitionCtxt); + transitionUrl = transitionInfo.promise.router.generate(transitionRoute, ...transitionCtxt); } else { - transitionUrl = transitionInfo.promise.router.generate(transitionRoute); + let queryParams = get(transitionInfo, 'promise.state.queryParams'); + if (queryParams) { + transitionUrl = transitionInfo.promise.router.generate(transitionRoute, { queryParams }); + } else { + transitionUrl = transitionInfo.promise.router.generate(transitionRoute); + } } } this.renderData = this.transitionData = new TransitionData({ @@ -179,4 +186,4 @@ export default Base.extend(Evented, { console.groupEnd(); } }) -}); \ No newline at end of file +});