mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 10:57:58 +00:00
Call process_loaded_for_unread() more directly.
This is a prefactoring to eventually eliminate the home_unread_messages global variable. More commits to follow. In order to set up process_loaded_for_unread() not to modify global variable to get its job done, we want to pull it out of add_messages(), so that add_messages() doesn't have to pass back state to the 9 different places in the codebase where it's called. There are only 2 places where process_loaded_for_unread() get called after this commit. In order to facilitate pulling up process_loaded_for_unread(), I made it so that the contract for add_messages() was to accept already-hydrated messages. This way I could hydrate the messages before calling process_loaded_for_unread() without have to worry about double-caching them in add_messages. This will slightly improve performance, but it was mostly done for code clarity. (imported from commit ad5aaad5b1f22c31647370f4c9dcb5f89d7d99a7)
This commit is contained in:
@@ -44,6 +44,7 @@ var globals =
|
|||||||
+ ' process_visible_unread_messages message_range message_in_table process_loaded_for_unread'
|
+ ' process_visible_unread_messages message_range message_in_table process_loaded_for_unread'
|
||||||
+ ' mark_all_as_read message_unread process_read_messages unread_in_current_view'
|
+ ' mark_all_as_read message_unread process_read_messages unread_in_current_view'
|
||||||
+ ' fast_forward_pointer recent_subjects unread_subjects'
|
+ ' fast_forward_pointer recent_subjects unread_subjects'
|
||||||
|
+ ' add_message_metadata'
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -662,16 +662,11 @@ function add_messages(messages, msg_list) {
|
|||||||
|
|
||||||
util.destroy_loading_indicator($('#page_loading_indicator'));
|
util.destroy_loading_indicator($('#page_loading_indicator'));
|
||||||
util.destroy_first_run_message();
|
util.destroy_first_run_message();
|
||||||
messages = $.map(messages, add_message_metadata);
|
|
||||||
|
|
||||||
if (add_messages_helper(messages, msg_list, msg_list.filter.predicate())) {
|
if (add_messages_helper(messages, msg_list, msg_list.filter.predicate())) {
|
||||||
prepended = true;
|
prepended = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg_list === all_msg_list) {
|
|
||||||
process_loaded_for_unread(messages);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((msg_list === narrowed_msg_list) && !msg_list.empty() &&
|
if ((msg_list === narrowed_msg_list) && !msg_list.empty() &&
|
||||||
(msg_list.selected_id() === -1)) {
|
(msg_list.selected_id() === -1)) {
|
||||||
// If adding some new messages to the message tables caused
|
// If adding some new messages to the message tables caused
|
||||||
@@ -745,6 +740,7 @@ function maybe_add_narrowed_messages(messages, msg_list) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
new_messages = $.map(new_messages, add_message_metadata);
|
||||||
add_messages(new_messages, msg_list);
|
add_messages(new_messages, msg_list);
|
||||||
process_visible_unread_messages();
|
process_visible_unread_messages();
|
||||||
compose.update_faded_messages();
|
compose.update_faded_messages();
|
||||||
@@ -848,13 +844,13 @@ function get_updates(options) {
|
|||||||
// server update. Once that bug is fixed, this
|
// server update. Once that bug is fixed, this
|
||||||
// should no longer be needed
|
// should no longer be needed
|
||||||
messages = deduplicate_messages(messages);
|
messages = deduplicate_messages(messages);
|
||||||
|
messages = $.map(messages, add_message_metadata);
|
||||||
|
|
||||||
// Our unread counts infrastructure (which runs when
|
// You must add add messages to home_msg_list BEFORE
|
||||||
// we add messages to all_msg_list) expects
|
// calling process_loaded_for_unread.
|
||||||
// add_messages to have already been called since
|
|
||||||
// update_unread_counts checks whether message are in
|
|
||||||
// the home view.
|
|
||||||
add_messages(messages, home_msg_list);
|
add_messages(messages, home_msg_list);
|
||||||
|
process_loaded_for_unread(messages);
|
||||||
|
|
||||||
add_messages(messages, all_msg_list);
|
add_messages(messages, all_msg_list);
|
||||||
|
|
||||||
if (narrow.active()) {
|
if (narrow.active()) {
|
||||||
@@ -940,10 +936,13 @@ function load_old_messages(opts) {
|
|||||||
narrow.show_empty_narrow_message();
|
narrow.show_empty_narrow_message();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
messages = $.map(messages, add_message_metadata);
|
||||||
|
|
||||||
// If we're loading more messages into the home view, save them to
|
// If we're loading more messages into the home view, save them to
|
||||||
// the all_msg_list as well, as the home_msg_list is reconstructed
|
// the all_msg_list as well, as the home_msg_list is reconstructed
|
||||||
// from all_msg_list.
|
// from all_msg_list.
|
||||||
if (opts.msg_list === home_msg_list) {
|
if (opts.msg_list === home_msg_list) {
|
||||||
|
process_loaded_for_unread(messages);
|
||||||
add_messages(messages, all_msg_list);
|
add_messages(messages, all_msg_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user