reactions: Fix reactions not displayed in all messages view.

We were not updating all the rendered `messages-rows` but just
for the current view.

This bug was introduced in
df180f7bd5
This commit is contained in:
Aman Agrawal
2024-01-19 06:37:02 +00:00
committed by Tim Abbott
parent cbb6d962d5
commit 8acbf02ad7
4 changed files with 18 additions and 8 deletions

View File

@@ -472,10 +472,9 @@ function abort_message(message) {
}
export function display_slow_send_loading_spinner(message) {
const message_list_id = message_lists.current.id;
const $row = $(`#message-row-${message_list_id}-${CSS.escape(message.id)}`);
const $rows = message_lists.all_rendered_row_for_message_id(message.id);
if (message.locally_echoed && !message.failed_request) {
$row.find(".slow-send-spinner").removeClass("hidden");
$rows.find(".slow-send-spinner").removeClass("hidden");
// We don't need to do anything special to ensure this gets
// cleaned up if the message is delivered, because the
// message's HTML gets replaced once the message is

View File

@@ -1,3 +1,4 @@
import $ from "jquery";
import assert from "minimalistic-assert";
import * as blueslip from "./blueslip";
@@ -70,6 +71,14 @@ export function all_rendered_message_lists(): MessageList[] {
return rendered_message_lists;
}
export function all_rendered_row_for_message_id(message_id: number): JQuery {
let $rows = $();
for (const msg_list of all_rendered_message_lists()) {
$rows = $rows.add(msg_list.get_row(message_id));
}
return $rows;
}
export function all_current_message_rows(): JQuery {
assert(current !== undefined);
return current.view.$list.find(".message_row");

View File

@@ -203,10 +203,8 @@ export function get_reaction_title_data(message_id, local_id) {
}
export function get_reaction_section(message_id) {
const message_list_id = message_lists.current.id;
return $(`#message-row-${message_list_id}-${CSS.escape(message_id)}`).find(
".message_reactions",
);
const $rows = message_lists.all_rendered_row_for_message_id(message_id);
return $rows.find(".message_reactions");
}
export function find_reaction(message_id, local_id) {

View File

@@ -44,10 +44,13 @@ const settings_data = mock_esm("../src/settings_data");
const spectators = mock_esm("../src/spectators", {
login_to_access() {},
});
mock_esm("../src/message_lists", {
const message_lists = mock_esm("../src/message_lists", {
current: {
id: 1,
},
home: {
id: 2,
},
});
set_global("document", "document-stub");
@@ -417,6 +420,7 @@ test("prevent_simultaneous_requests_updating_reaction", ({override, override_rew
function stub_reactions(message_id) {
const $message_reactions = $.create("reactions-stub");
const $message_row = $.create(`#message-row-1-${CSS.escape(message_id)}`);
message_lists.all_rendered_row_for_message_id = () => $message_row;
$message_row.set_find_results(".message_reactions", $message_reactions);
return $message_reactions;
}