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

Reply via email to