mirror of https://github.com/zulip/zulip.git
message_edit: Fix rendering bug when topic-editing single messages.
If you topic-edited a single message within a narrow, we would update all our unreads/sidebar/etc. data structures, and would rerender the message if appropriate. However, for the corner case of being inside a topic narrow when you did this, we didn't have logic to remove the message from the narrow (which is the appropriate situation when you just topic-edited a message in a narrow). When topic-editing multiple messages including the currently selected message (the more common case), we would end up changing the narrow, resulting in this issue being masked. Fixes #11601.
This commit is contained in:
parent
da043f163d
commit
7717337b1e
|
@ -157,12 +157,11 @@ exports.update_messages = function update_messages(events) {
|
|||
}
|
||||
}
|
||||
|
||||
var current_filter = narrow_state.filter();
|
||||
if (going_forward_change) {
|
||||
var current_id = current_msg_list.selected_id();
|
||||
var selection_changed_topic = _.indexOf(event.message_ids, current_id) >= 0;
|
||||
|
||||
if (selection_changed_topic) {
|
||||
var current_filter = narrow_state.filter();
|
||||
if (current_filter && stream_name) {
|
||||
if (current_filter.has_topic(stream_name, orig_topic)) {
|
||||
var new_filter = current_filter.filter_with_new_topic(new_topic);
|
||||
|
@ -205,6 +204,18 @@ exports.update_messages = function update_messages(events) {
|
|||
topic_name: util.get_message_topic(msg),
|
||||
message_id: msg.id,
|
||||
});
|
||||
|
||||
if (!changed_narrow && current_filter && current_filter.can_apply_locally() &&
|
||||
!current_filter.predicate()(msg)) {
|
||||
// This topic edit makes this message leave the
|
||||
// current narrow, which is not being changed as
|
||||
// part of processing this event. So we should
|
||||
// remove the message from the current/narrowed message list.
|
||||
var cur_row = current_msg_list.get_row(id);
|
||||
if (cur_row !== undefined) {
|
||||
current_msg_list.remove_and_rerender([{id: id}]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue