mirror of
https://github.com/discourse/discourse.git
synced 2025-02-11 22:44:14 +08:00
32 lines
834 B
JavaScript
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;
|
|
}
|
|
};
|