mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 07:23:22 +00:00
Always re-render locally echoed messages.
Our old optimizations to prevent re-rendering of locally echoed messages created a lot of code complexity. This commit is an experiment to simplify the code, which it clearly does. The danger of re-rendering messages is flicker, but our message view has changed since the original local echo code was written.
This commit is contained in:
@@ -207,8 +207,6 @@ exports.reify_message_id = function reify_message_id(local_id, server_id) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.process_from_server = function process_from_server(messages) {
|
exports.process_from_server = function process_from_server(messages) {
|
||||||
var updated = false;
|
|
||||||
var locally_processed_ids = [];
|
|
||||||
var msgs_to_rerender = [];
|
var msgs_to_rerender = [];
|
||||||
var non_echo_messages = [];
|
var non_echo_messages = [];
|
||||||
|
|
||||||
@@ -229,24 +227,19 @@ exports.process_from_server = function process_from_server(messages) {
|
|||||||
|
|
||||||
if (client_message.content !== message.content) {
|
if (client_message.content !== message.content) {
|
||||||
client_message.content = message.content;
|
client_message.content = message.content;
|
||||||
updated = true;
|
|
||||||
sent_messages.mark_disparity(message.local_id);
|
sent_messages.mark_disparity(message.local_id);
|
||||||
}
|
}
|
||||||
msgs_to_rerender.push(client_message);
|
msgs_to_rerender.push(client_message);
|
||||||
locally_processed_ids.push(client_message.id);
|
|
||||||
delete waiting_for_ack[client_message.id];
|
delete waiting_for_ack[client_message.id];
|
||||||
});
|
});
|
||||||
|
|
||||||
if (updated) {
|
if (msgs_to_rerender.length > 0) {
|
||||||
home_msg_list.view.rerender_messages(msgs_to_rerender);
|
home_msg_list.view.rerender_messages(msgs_to_rerender);
|
||||||
if (current_msg_list === message_list.narrowed) {
|
if (current_msg_list === message_list.narrowed) {
|
||||||
message_list.narrowed.view.rerender_messages(msgs_to_rerender);
|
message_list.narrowed.view.rerender_messages(msgs_to_rerender);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
_.each(locally_processed_ids, function (id) {
|
|
||||||
ui.show_local_message_arrived(id);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return non_echo_messages;
|
return non_echo_messages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -102,21 +102,6 @@ exports.update_starred = function (message_id, starred) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var local_messages_to_show = [];
|
|
||||||
var show_message_timestamps = _.throttle(function () {
|
|
||||||
_.each(local_messages_to_show, function (message_id) {
|
|
||||||
update_message_in_all_views(message_id, function update_row(row) {
|
|
||||||
row.find('.message_time').toggleClass('notvisible', false);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
local_messages_to_show = [];
|
|
||||||
}, 100);
|
|
||||||
|
|
||||||
exports.show_local_message_arrived = function (message_id) {
|
|
||||||
local_messages_to_show.push(message_id);
|
|
||||||
show_message_timestamps();
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.show_message_failed = function (message_id, failed_msg) {
|
exports.show_message_failed = function (message_id, failed_msg) {
|
||||||
// Failed to send message, so display inline retry/cancel
|
// Failed to send message, so display inline retry/cancel
|
||||||
update_message_in_all_views(message_id, function update_row(row) {
|
update_message_in_all_views(message_id, function update_row(row) {
|
||||||
|
|||||||
Reference in New Issue
Block a user