mirror of https://github.com/zulip/zulip.git
recent_topics: Handle mute/unmute update to topic.
* We don't remove topic data when it's muted. We will filter it before rendering.
This commit is contained in:
parent
76b0c6de86
commit
04cdc89681
|
@ -207,4 +207,17 @@ run_test('basic assertions', () => {
|
|||
assert.equal(Array.from(all_topics.keys()).toString(),
|
||||
'1:topic-7,1:topic-3,1:topic-1,1:topic-6,1:topic-5,1:topic-4,1:topic-2');
|
||||
verify_topic_data(all_topics, stream1, topic7, id, true, 0, true);
|
||||
|
||||
// unmute topic7
|
||||
rt.update_topic_is_muted(stream1, topic7, false);
|
||||
all_topics = rt.get();
|
||||
verify_topic_data(all_topics, stream1, topic7, id, true, 0, false);
|
||||
|
||||
// mute topic7
|
||||
rt.update_topic_is_muted(stream1, topic7, true);
|
||||
all_topics = rt.get();
|
||||
verify_topic_data(all_topics, stream1, topic7, id, true, 0, true);
|
||||
|
||||
// a topic gets muted which we are not tracking
|
||||
assert.equal(rt.update_topic_is_muted(stream1, "topic-10", true), false);
|
||||
});
|
||||
|
|
|
@ -112,6 +112,7 @@ exports.mute = function (stream_id, topic) {
|
|||
title_text: i18n.t("Topic muted"),
|
||||
undo_button_text: i18n.t("Unmute"),
|
||||
});
|
||||
recent_topics.update_topic_is_muted(stream_id, topic, true);
|
||||
};
|
||||
|
||||
exports.unmute = function (stream_id, topic) {
|
||||
|
@ -124,6 +125,7 @@ exports.unmute = function (stream_id, topic) {
|
|||
exports.rerender();
|
||||
exports.persist_unmute(stream_id, topic);
|
||||
feedback_widget.dismiss();
|
||||
recent_topics.update_topic_is_muted(stream_id, topic, false);
|
||||
};
|
||||
|
||||
exports.toggle_mute = function (message) {
|
||||
|
|
|
@ -34,6 +34,15 @@ exports.process_message = function (msg) {
|
|||
return true;
|
||||
};
|
||||
|
||||
exports.update_topic_is_muted = function (stream_id, topic, is_muted) {
|
||||
const key = stream_id + ":" + topic;
|
||||
if (!topics.has(key)) {
|
||||
return false;
|
||||
}
|
||||
const topic_data = topics.get(stream_id + ":" + topic);
|
||||
topic_data.muted = is_muted;
|
||||
};
|
||||
|
||||
function get_sorted_topics() {
|
||||
// Sort all recent topics by last message time.
|
||||
return new Map(Array.from(topics.entries()).sort(function (a, b) {
|
||||
|
|
Loading…
Reference in New Issue