mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 22:43:42 +00:00
Instead of collapsing muted messages, just hide them altogether in view where it makes sense to hide them. (imported from commit 1c2c987ff302ceb135a025753cf421b4de1aea71)
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
var muting_ui = (function () {
|
|
|
|
var exports = {};
|
|
|
|
function timestamp_ms() {
|
|
return (new Date()).getTime();
|
|
}
|
|
|
|
var last_topic_update = 0;
|
|
|
|
exports.persist_and_rerender = function () {
|
|
// Optimistically rerender our new muting preferences. The back
|
|
// end should eventually save it, and if it doesn't, it's a recoverable
|
|
// error--the user can just mute the topic again, and the topic might
|
|
// die down before the next reload anyway, making the muting moot.
|
|
current_msg_list.rerender_after_muting_changes();
|
|
if (current_msg_list !== home_msg_list) {
|
|
home_msg_list.rerender_after_muting_changes();
|
|
}
|
|
var data = {
|
|
muted_topics: JSON.stringify(muting.get_muted_topics())
|
|
};
|
|
last_topic_update = timestamp_ms();
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: '/json/set_muted_topics',
|
|
data: data,
|
|
dataType: 'json'
|
|
});
|
|
};
|
|
|
|
exports.handle_updates = function (muted_topics) {
|
|
if (timestamp_ms() < last_topic_update + 1000) {
|
|
// This topic update is either the one that we just rendered, or,
|
|
// much less likely, it's coming from another device and would probably
|
|
// be overwriting this device's preferences with stale data.
|
|
return;
|
|
}
|
|
|
|
muting.set_muted_topics(muted_topics);
|
|
current_msg_list.rerender();
|
|
};
|
|
|
|
return exports;
|
|
}());
|
|
|