discourse/app/assets/javascripts/discourse/lib/page-tracker.js.es6
2016-02-19 16:30:59 -05:00

32 lines
834 B
JavaScript

const PageTracker = Ember.Object.extend(Ember.Evented);
let _pageTracker = PageTracker.create();
let _started = false;
export function startPageTracking(router) {
if (_started) { return; }
router.on('didTransition', function() {
this.send('refreshTitle');
const url = Discourse.getURL(this.get('url'));
// Refreshing the title is debounced, so we need to trigger this in the
// next runloop to have the correct title.
Em.run.next(() => {
_pageTracker.trigger('change', url, Discourse.get('_docTitle'));
});
});
_started = true;
}
export function onPageChange(fn) {
_pageTracker.on('change', fn);
}
// backwards compatibility
export default {
current() {
console.warn(`Using PageTracker.current() is deprecated. Your plugin should use the PluginAPI`);
return _pageTracker;
}
};