@@ -235,7 +235,7 @@ func (list ReactionList) HasUser(userID int64) bool {
235235 return false
236236 }
237237 for _ , reaction := range list {
238- if reaction .UserID == userID {
238+ if reaction .OriginalAuthor == "" && reaction . UserID == userID {
239239 return true
240240 }
241241 }
@@ -254,14 +254,17 @@ func (list ReactionList) GroupByType() map[string]ReactionList {
254254func (list ReactionList ) getUserIDs () []int64 {
255255 userIDs := make (map [int64 ]struct {}, len (list ))
256256 for _ , reaction := range list {
257+ if reaction .OriginalAuthor == "" {
258+ continue
259+ }
257260 if _ , ok := userIDs [reaction .UserID ]; ! ok {
258261 userIDs [reaction .UserID ] = struct {}{}
259262 }
260263 }
261264 return keysInt64 (userIDs )
262265}
263266
264- func (list ReactionList ) loadUsers (e Engine ) ([]* User , error ) {
267+ func (list ReactionList ) loadUsers (e Engine , repo * Repository ) ([]* User , error ) {
265268 if len (list ) == 0 {
266269 return nil , nil
267270 }
@@ -276,7 +279,9 @@ func (list ReactionList) loadUsers(e Engine) ([]*User, error) {
276279 }
277280
278281 for _ , reaction := range list {
279- if user , ok := userMaps [reaction .UserID ]; ok {
282+ if reaction .OriginalAuthor != "" {
283+ reaction .User = NewReplaceUser (fmt .Sprintf ("%s(%s)" , reaction .OriginalAuthor , repo .OriginalServiceType .Name ()))
284+ } else if user , ok := userMaps [reaction .UserID ]; ok {
280285 reaction .User = user
281286 } else {
282287 reaction .User = NewGhostUser ()
@@ -286,8 +291,8 @@ func (list ReactionList) loadUsers(e Engine) ([]*User, error) {
286291}
287292
288293// LoadUsers loads reactions' all users
289- func (list ReactionList ) LoadUsers () ([]* User , error ) {
290- return list .loadUsers (x )
294+ func (list ReactionList ) LoadUsers (repo * Repository ) ([]* User , error ) {
295+ return list .loadUsers (x , repo )
291296}
292297
293298// GetFirstUsers returns first reacted user display names separated by comma
0 commit comments