Skip to content
Snippets Groups Projects
Verified Commit 5164c2c5 authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Dedup reactions

parent 96f791da
No related branches found
No related tags found
No related merge requests found
Pipeline #4439 passed
......@@ -575,8 +575,7 @@ EventStore::reactions(const std::string &event_id)
struct TempReaction
{
int count = 0;
std::vector<std::string> users;
std::set<std::string> users;
std::string reactedBySelf;
};
std::map<std::string, TempReaction> aggregation;
......@@ -595,14 +594,13 @@ EventStore::reactions(const std::string &event_id)
auto key = reaction->content.relations.annotates()->key.value();
auto &agg = aggregation[key];
if (agg.count == 0) {
if (agg.users.empty()) {
Reaction temp{};
temp.key_ = QString::fromStdString(key);
reactions.push_back(temp);
}
agg.count++;
agg.users.push_back(cache::displayName(room_id_, reaction->sender));
agg.users.insert(cache::displayName(room_id_, reaction->sender));
if (reaction->sender == self)
agg.reactedBySelf = reaction->event_id;
}
......@@ -612,7 +610,7 @@ EventStore::reactions(const std::string &event_id)
temp.reserve(static_cast<int>(reactions.size()));
for (auto &reaction : reactions) {
const auto &agg = aggregation[reaction.key_.toStdString()];
reaction.count_ = agg.count;
reaction.count_ = agg.users.size();
reaction.selfReactedEvent_ = QString::fromStdString(agg.reactedBySelf);
bool firstReaction = true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment