This is an automated email from the ASF dual-hosted git repository.
linkinstar pushed a commit to branch fix/1.3.5/question
in repository https://gitbox.apache.org/repos/asf/incubator-answer.git
The following commit(s) were added to refs/heads/fix/1.3.5/question by this
push:
new e3b48351 fix(question): update latest reactions when removing
e3b48351 is described below
commit e3b483519ebcae31effae05695b89c13944145d2
Author: LinkinStars <[email protected]>
AuthorDate: Fri Jun 7 16:49:51 2024 +0800
fix(question): update latest reactions when removing
---
internal/schema/meta_schema.go | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/internal/schema/meta_schema.go b/internal/schema/meta_schema.go
index 60f32ba0..286e2e7d 100644
--- a/internal/schema/meta_schema.go
+++ b/internal/schema/meta_schema.go
@@ -68,18 +68,24 @@ func (r *ReactionsSummaryMeta) AddReactionSummary(emoji,
userID string) {
// RemoveReactionSummary remove user operation from reaction summary
func (r *ReactionsSummaryMeta) RemoveReactionSummary(emoji, userID string) {
+ updatedReactions := make([]*ReactionSummaryMeta, 0)
for _, reaction := range r.Reactions {
- if reaction.Emoji != emoji {
+ if reaction.Emoji != emoji && len(reaction.UserIDs) > 0 {
+ updatedReactions = append(updatedReactions, reaction)
continue
}
- updated := make([]string, 0, len(r.Reactions))
+ updatedUserIDs := make([]string, 0, len(r.Reactions))
for _, id := range reaction.UserIDs {
if id != userID {
- updated = append(updated, id)
+ updatedUserIDs = append(updatedUserIDs, id)
}
}
- reaction.UserIDs = updated
+ if len(updatedUserIDs) > 0 {
+ reaction.UserIDs = updatedUserIDs
+ updatedReactions = append(updatedReactions, reaction)
+ }
}
+ r.Reactions = updatedReactions
}
// CheckUserInReactionSummary check user's operation if in reaction summary