mirror of
https://github.com/discourse/discourse.git
synced 2026-08-11 05:25:16 -05:00
DEV: Adds hasNoPreferredMode to chat state manager (#33213)
This commit introduces a new property `hasNoPreferredMode` to the chat state manager, which represents a user who has not purposely set chat mode to drawer or full page, meaning they have no LocalStorage value set. This can be useful for themes to change the chat mode but only if the user has no preference already. c.f. https://meta.discourse.org/t/full-screen-chat-as-default-for-collaboration-setup/369849
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user