diff --git a/app/assets/javascripts/discourse/app/initializers/message-bus.js b/app/assets/javascripts/discourse/app/initializers/message-bus.js index 2309ba066eb6d8..b7964f6a9f1554 100644 --- a/app/assets/javascripts/discourse/app/initializers/message-bus.js +++ b/app/assets/javascripts/discourse/app/initializers/message-bus.js @@ -56,11 +56,7 @@ export default { // When 20 minutes pass we stop long polling due to "shouldLongPollCallback". onPresenceChange({ unseenTime: LONG_POLL_AFTER_UNSEEN_TIME, - callback: () => { - if (messageBus.onVisibilityChange) { - messageBus.onVisibilityChange(); - } - }, + callback: () => document.dispatchEvent(new Event("visibilitychange")), }); if (siteSettings.login_required && !user) { diff --git a/app/assets/javascripts/discourse/app/lib/user-presence.js b/app/assets/javascripts/discourse/app/lib/user-presence.js index 081fff45534d93..92f17111e8fdeb 100644 --- a/app/assets/javascripts/discourse/app/lib/user-presence.js +++ b/app/assets/javascripts/discourse/app/lib/user-presence.js @@ -44,11 +44,11 @@ export function seenUser() { } // register a callback for cases where presence changed -export function onPresenceChange(maxUnseenTime, callback) { - if (maxUnseenTime < MIN_DELTA) { +export function onPresenceChange({ unseenTime, callback }) { + if (unseenTime < MIN_DELTA) { throw "unseenTime is too short"; } - callbacks.push({ unseenTime: maxUnseenTime, callback: callback }); + callbacks.push({ unseenTime, callback }); } // We could piggieback on the Scroll mixin, but it is not applied