left_sidebar: Include unmuted counts in muted channels in toggle count.

This commit is contained in:
Evy Kassirer
2025-08-05 11:17:24 -07:00
committed by Tim Abbott
parent fd08149993
commit cf5e7a27ba

View File

@@ -664,9 +664,12 @@ type SectionUnreadCount = {
// These both include inactive unreads as well. // These both include inactive unreads as well.
unmuted: number; unmuted: number;
muted: number; muted: number;
// These are used for the "+ n inactive channels" button. // These are used for the count on the inactive/muted channel toggle.
inactive_unmuted: number; inactive_unmuted: number;
inactive_muted: number; inactive_muted: number;
// e.g. followed topics in a muted channel, which count towards
// the unmuted count in the inactive/muted channels toggle.
muted_channel_unmuted: number;
}; };
export let update_dom_with_unread_counts = function (counts: FullUnreadCountsData): void { export let update_dom_with_unread_counts = function (counts: FullUnreadCountsData): void {
@@ -700,6 +703,7 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
// Not used for the pinned section, but included here to make typing easier // Not used for the pinned section, but included here to make typing easier
inactive_unmuted: 0, inactive_unmuted: 0,
inactive_muted: 0, inactive_muted: 0,
muted_channel_unmuted: 0,
}; };
const folder_unread_counts = new Map<number, SectionUnreadCount>(); const folder_unread_counts = new Map<number, SectionUnreadCount>();
const normal_section_unread_counts: SectionUnreadCount = { const normal_section_unread_counts: SectionUnreadCount = {
@@ -707,6 +711,7 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
muted: 0, muted: 0,
inactive_unmuted: 0, inactive_unmuted: 0,
inactive_muted: 0, inactive_muted: 0,
muted_channel_unmuted: 0,
}; };
for (const [stream_id, stream_count_info] of counts.stream_count.entries()) { for (const [stream_id, stream_count_info] of counts.stream_count.entries()) {
@@ -722,12 +727,16 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
muted: 0, muted: 0,
inactive_unmuted: 0, inactive_unmuted: 0,
inactive_muted: 0, inactive_muted: 0,
muted_channel_unmuted: 0,
}); });
} }
const unread_counts = folder_unread_counts.get(sub.folder_id)!; const unread_counts = folder_unread_counts.get(sub.folder_id)!;
unread_counts.unmuted += stream_count_info.unmuted_count; unread_counts.unmuted += stream_count_info.unmuted_count;
unread_counts.muted += stream_count_info.muted_count; unread_counts.muted += stream_count_info.muted_count;
if (sub.is_muted) {
unread_counts.muted_channel_unmuted += stream_count_info.unmuted_count;
}
if (!stream_list_sort.has_recent_activity(sub)) { if (!stream_list_sort.has_recent_activity(sub)) {
unread_counts.inactive_unmuted += stream_count_info.unmuted_count; unread_counts.inactive_unmuted += stream_count_info.unmuted_count;
unread_counts.inactive_muted += stream_count_info.muted_count; unread_counts.inactive_muted += stream_count_info.muted_count;
@@ -735,6 +744,10 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
} else { } else {
normal_section_unread_counts.unmuted += stream_count_info.unmuted_count; normal_section_unread_counts.unmuted += stream_count_info.unmuted_count;
normal_section_unread_counts.muted += stream_count_info.muted_count; normal_section_unread_counts.muted += stream_count_info.muted_count;
if (sub.is_muted) {
normal_section_unread_counts.muted_channel_unmuted +=
stream_count_info.unmuted_count;
}
if (!stream_list_sort.has_recent_activity(sub)) { if (!stream_list_sort.has_recent_activity(sub)) {
normal_section_unread_counts.inactive_unmuted += stream_count_info.unmuted_count; normal_section_unread_counts.inactive_unmuted += stream_count_info.unmuted_count;
normal_section_unread_counts.inactive_muted += stream_count_info.muted_count; normal_section_unread_counts.inactive_muted += stream_count_info.muted_count;
@@ -773,7 +786,8 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
); );
update_section_unread_count( update_section_unread_count(
$("#stream-list-normal-streams-container .show-inactive-or-muted-channels"), $("#stream-list-normal-streams-container .show-inactive-or-muted-channels"),
normal_section_unread_counts.inactive_unmuted, normal_section_unread_counts.inactive_unmuted +
normal_section_unread_counts.muted_channel_unmuted,
normal_section_unread_counts.inactive_muted + normal_section_unread_counts.muted, normal_section_unread_counts.inactive_muted + normal_section_unread_counts.muted,
); );
@@ -783,6 +797,7 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
muted: 0, muted: 0,
inactive_unmuted: 0, inactive_unmuted: 0,
inactive_muted: 0, inactive_muted: 0,
muted_channel_unmuted: 0,
}; };
update_section_unread_count( update_section_unread_count(
$(`#stream-list-${folder_id}-container .stream-list-subsection-header`), $(`#stream-list-${folder_id}-container .stream-list-subsection-header`),
@@ -791,7 +806,7 @@ export let update_dom_with_unread_counts = function (counts: FullUnreadCountsDat
); );
update_section_unread_count( update_section_unread_count(
$(`#stream-list-${folder_id}-container .show-inactive-or-muted-channels`), $(`#stream-list-${folder_id}-container .show-inactive-or-muted-channels`),
unread_counts.inactive_unmuted, unread_counts.inactive_unmuted + unread_counts.muted_channel_unmuted,
unread_counts.inactive_muted + unread_counts.muted, unread_counts.inactive_muted + unread_counts.muted,
); );
} }