mirror of
https://github.com/discourse/discourse.git
synced 2025-06-25 19:52:37 +00: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:
parent
6ea31d32f0
commit
c00c522530
@ -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");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user