diff --git a/plugins/chat/assets/javascripts/discourse/services/chat-state-manager.js b/plugins/chat/assets/javascripts/discourse/services/chat-state-manager.js index 15427910001..baf399f2116 100644 --- a/plugins/chat/assets/javascripts/discourse/services/chat-state-manager.js +++ b/plugins/chat/assets/javascripts/discourse/services/chat-state-manager.js @@ -148,11 +148,15 @@ export default class ChatStateManager extends Service { return !!( !this.isFullPagePreferred || (this.site.desktopView && - (!this._store.getObject(PREFERRED_MODE_KEY) || + (this.hasNoPreferredMode || this._store.getObject(PREFERRED_MODE_KEY) === DRAWER_CHAT)) ); } + get hasNoPreferredMode() { + return !this._store.getObject(PREFERRED_MODE_KEY); + } + get isFullPageActive() { return this.router.currentRouteName?.startsWith("chat"); } diff --git a/plugins/chat/test/javascripts/unit/services/chat-state-manager-test.js b/plugins/chat/test/javascripts/unit/services/chat-state-manager-test.js index 429f0e910f4..a15c59b1211 100644 --- a/plugins/chat/test/javascripts/unit/services/chat-state-manager-test.js +++ b/plugins/chat/test/javascripts/unit/services/chat-state-manager-test.js @@ -50,6 +50,18 @@ module( assert.true(this.subject.isDrawerPreferred); }); + test("hasNoPreferredMode", async function (assert) { + assert.true(this.subject.hasNoPreferredMode); + + this.subject.prefersFullPage(); + + assert.false(this.subject.hasNoPreferredMode); + + this.subject.prefersDrawer(); + + assert.false(this.subject.hasNoPreferredMode); + }); + test("lastKnownChatURL", function (assert) { assert.strictEqual(this.subject.lastKnownChatURL, "/chat");