@@ -62,9 +56,9 @@ export default class ChatChannelUnreadIndicator extends Component {
(if this.isUrgent "-urgent")
}}
>
- {{#if
- this.isUrgent
- }}{{this.urgentCount}}{{else}} {{/if}}
+
+ {{#if this.isUrgent}}{{this.urgentBadgeCount}}{{else}} {{/if}}
+
{{/if}}
diff --git a/plugins/chat/assets/javascripts/discourse/components/chat/footer/unread-indicator.gjs b/plugins/chat/assets/javascripts/discourse/components/chat/footer/unread-indicator.gjs
index dc57ad8d175..0a7d8ec30ca 100644
--- a/plugins/chat/assets/javascripts/discourse/components/chat/footer/unread-indicator.gjs
+++ b/plugins/chat/assets/javascripts/discourse/components/chat/footer/unread-indicator.gjs
@@ -27,7 +27,10 @@ export default class FooterUnreadIndicator extends Component {
if (this.badgeType === CHANNELS_TAB) {
return this.chatTrackingStateManager.publicChannelMentionCount;
} else if (this.badgeType === DMS_TAB) {
- return this.chatTrackingStateManager.directMessageUnreadCount;
+ return (
+ this.chatTrackingStateManager.directMessageUnreadCount +
+ this.chatTrackingStateManager.directMessageMentionCount
+ );
} else if (this.badgeType === THREADS_TAB) {
return this.chatTrackingStateManager.watchedThreadsUnreadCount;
} else {
diff --git a/plugins/chat/assets/javascripts/discourse/components/chat/message-creator/channel.gjs b/plugins/chat/assets/javascripts/discourse/components/chat/message-creator/channel.gjs
index 94b36fa4db9..df8d595f582 100644
--- a/plugins/chat/assets/javascripts/discourse/components/chat/message-creator/channel.gjs
+++ b/plugins/chat/assets/javascripts/discourse/components/chat/message-creator/channel.gjs
@@ -1,21 +1,40 @@
import Component from "@glimmer/component";
import { service } from "@ember/service";
-import { gt, not } from "truth-helpers";
+import { not } from "truth-helpers";
import ChannelTitle from "discourse/plugins/chat/discourse/components/channel-title";
export default class Channel extends Component {
@service currentUser;
+ get tracking() {
+ return this.args.item.tracking;
+ }
+
get isUrgent() {
+ return this.args.item.model.isDirectMessageChannel
+ ? this.hasUnreads || this.hasUrgent
+ : this.hasUrgent;
+ }
+
+ get hasUnreads() {
+ return this.tracking?.unreadCount > 0;
+ }
+
+ get hasUrgent() {
return (
- this.args.item.model.isDirectMessageChannel ||
- (this.args.item.model.isCategoryChannel &&
- this.args.item.model.tracking.mentionCount > 0) ||
- (this.args.item.model.isCategoryChannel &&
- this.args.item.model.tracking.watchedThreadsUnreadCount > 0)
+ this.tracking?.mentionCount > 0 ||
+ this.tracking?.watchedThreadsUnreadCount > 0
);
}
+ get hasUnreadThreads() {
+ return this.args.item.unread_thread_count > 0;
+ }
+
+ get showIndicator() {
+ return this.hasUnreads || this.hasUnreadThreads || this.hasUrgent;
+ }
+