From e5acbf949808bc40904b1a367b3c3f5c1d1a988d Mon Sep 17 00:00:00 2001 From: Aman Agrawal Date: Thu, 15 Apr 2021 06:43:09 +0000 Subject: [PATCH] activity: Fix buddy_list unread count not being updated instantly. While rest of the app has ported to the new system of updating unread_counts `activity` was not ported. This resulted in unread count in buddy list not being updated when new PMs arrive. --- frontend_tests/node_tests/activity.js | 12 ++++-------- static/js/activity.js | 21 +++------------------ 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/frontend_tests/node_tests/activity.js b/frontend_tests/node_tests/activity.js index e7aa8436a9..d683b7d06e 100644 --- a/frontend_tests/node_tests/activity.js +++ b/frontend_tests/node_tests/activity.js @@ -261,13 +261,11 @@ function buddy_list_add(user_id, stub) { } test_ui("PM_update_dom_counts", () => { - const value = $.create("alice-value"); - const count = $.create("alice-count"); + const count = $.create("alice-unread-count"); const pm_key = alice.user_id.toString(); const li = $.create("alice stub"); buddy_list_add(pm_key, li); - count.set_find_results(".value", value); - li.set_find_results(".count", count); + li.set_find_results(".unread_count", count); count.set_parents_result("li", li); const counts = new Map(); @@ -275,14 +273,12 @@ test_ui("PM_update_dom_counts", () => { li.addClass("user_sidebar_entry"); activity.update_dom_with_unread_counts({pm_count: counts}); - assert(li.hasClass("user-with-count")); - assert.equal(value.text(), "5"); + assert.equal(count.text(), "5"); counts.set(pm_key, 0); activity.update_dom_with_unread_counts({pm_count: counts}); - assert(!li.hasClass("user-with-count")); - assert.equal(value.text(), ""); + assert.equal(count.text(), ""); }); test_ui("handlers", (override) => { diff --git a/static/js/activity.js b/static/js/activity.js index e37ea5bfe1..d67db4e4f0 100644 --- a/static/js/activity.js +++ b/static/js/activity.js @@ -13,6 +13,7 @@ import * as people from "./people"; import * as pm_list from "./pm_list"; import * as popovers from "./popovers"; import * as presence from "./presence"; +import * as ui_util from "./ui_util"; import {UserSearch} from "./user_search"; import * as user_status from "./user_status"; import * as watchdog from "./watchdog"; @@ -51,21 +52,6 @@ export function set_new_user_input(value) { new_user_input = value; } -function update_pm_count_in_dom(count_span, value_span, count) { - const li = count_span.parents("li"); - - if (count === 0) { - count_span.hide(); - li.removeClass("user-with-count"); - value_span.text(""); - return; - } - - count_span.show(); - li.addClass("user-with-count"); - value_span.text(count); -} - function get_pm_list_item(user_id) { return buddy_list.find_li({ key: user_id, @@ -73,9 +59,8 @@ function get_pm_list_item(user_id) { } function set_pm_count(user_ids_string, count) { - const count_span = get_pm_list_item(user_ids_string).find(".count"); - const value_span = count_span.find(".value"); - update_pm_count_in_dom(count_span, value_span, count); + const pm_li = get_pm_list_item(user_ids_string); + ui_util.update_unread_count_in_dom(pm_li, count); } export function update_dom_with_unread_counts(counts) {