buddy_list: Remove deactivated users from right sidebar.

Filter out inactive people from the buddy list in the right
sidebar.
This commit is contained in:
adnan-td
2024-08-10 00:08:24 +05:30
committed by Tim Abbott
parent a36f906d1a
commit eaaf26e182
4 changed files with 20 additions and 4 deletions

View File

@@ -326,6 +326,11 @@ function filter_user_ids(user_filter_text: string, user_ids: number[]): number[]
return false;
}
if (!people.is_person_active(user_id)) {
// Deactivated users are hidden from the right sidebar entirely.
return false;
}
if (muted_users.is_user_muted(user_id)) {
// Muted users are hidden from the right sidebar entirely.
return false;

View File

@@ -52,7 +52,7 @@ function get_total_human_subscriber_count(
let human_user_count = 0;
for (const pm_id of all_recipient_user_ids_set) {
if (!people.is_valid_bot_user(pm_id)) {
if (!people.is_valid_bot_user(pm_id) && people.is_person_active(pm_id)) {
human_user_count += 1;
}
}

View File

@@ -76,7 +76,7 @@ export function get_subscriber_count(stream_id: number, include_bots = true): nu
let count = 0;
for (const user_id of get_user_set(stream_id).keys()) {
if (!people.is_valid_bot_user(user_id)) {
if (!people.is_valid_bot_user(user_id) && people.is_person_active(user_id)) {
count += 1;
}
}

View File

@@ -218,15 +218,26 @@ test("title_data", () => {
assert.deepEqual(buddy_data.get_title_data(old_user.user_id, is_group), expected_data);
});
test("simple search", () => {
test("filters deactivated users", () => {
add_canned_users();
set_presence(selma.user_id, "active");
set_presence(me.user_id, "active");
const user_ids = buddy_data.get_filtered_and_sorted_user_ids("selm");
let user_ids = buddy_data.get_filtered_and_sorted_user_ids("selm");
assert.deepEqual(user_ids, [selma.user_id]);
assert.ok(buddy_data.matches_filter("selm", selma.user_id));
// Deactivated users are excluded.
people.deactivate(selma);
user_ids = buddy_data.get_filtered_and_sorted_user_ids("selm");
assert.deepEqual(user_ids, []);
user_ids = buddy_data.get_filtered_and_sorted_user_ids();
assert.equal(user_ids.includes(selma.user_id), false);
assert.ok(!buddy_data.matches_filter("selm", selma.user_id));
});
test("muted users excluded from search", () => {