emberjs / emberjs/router.js

transition.urlMethod as a proxy for browser pop state?

Open
#278 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
1.3k
Forks
159
PR merge metrics
No merged PRs in 30d

Description

I'm using the new Ember 3.7 routerService to build the browser's history in js-land for the purposes of showing nav back/forward buttons (think iOS app nav buttons).

One issue I'm facing is when to detect that a `routeDidChange` was the consequence of a browser back/forward event.

This can be known if I hook into the `window.onpopstate` event, but unfortunately, this fires after `routeDidChange`.

So, I've delved into the transition object in the hope of some clue as to whether a specific transition was browser initiated rather than a usual ember routing event.

It seems that `transition.urlMethod` may be this, from my limited testing it seems that `transition.urlMethod` will be `null` when a browser back/forward action triggered the transition and I can therefore use a null value as a indication that some kind of back/forward was used.

I've searched the codebase to see whether this is a safe assumption, but it seems that none of the comments specifically identify this.

So my question is... can I safely use `transition.urlMethod` to indicate in my code that a transition was not triggered by Ember and therefore is likely a browser-triggered back/forward transition?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.