Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/api/server/v1/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ API.v1.addRoute('chat.syncMessages', { authRequired: true }, {
return API.v1.success({
result: {
updated: normalizeMessagesForUser(result.updated, this.userId),
deleted: normalizeMessagesForUser(result.deleted, this.userId),
deleted: result.deleted,
},
});
},
Expand Down
24 changes: 14 additions & 10 deletions app/utils/server/lib/normalizeMessagesForUser.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ export const normalizeMessagesForUser = (messages, uid) => {
messages.forEach((message) => {
message = filterStarred(message, uid);

usernames.add(message.u.username);
if (message.u && message.u.username) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (message.u && message.u.username) {
if (!message.u || !message.u.username) {
return;
}

usernames.add(message.u.username);

(message.mentions || []).forEach(({ username }) => { usernames.add(username); });
(message.mentions || []).forEach(({ username }) => { usernames.add(username); });

Object.values(message.reactions || {})
.forEach((reaction) => reaction.usernames.forEach((username) => usernames.add(username)));
Object.values(message.reactions || {})
.forEach((reaction) => reaction.usernames.forEach((username) => usernames.add(username)));
}
});

const users = {};
Expand All @@ -42,14 +44,16 @@ export const normalizeMessagesForUser = (messages, uid) => {
});

messages.forEach((message) => {
message.u.name = users[message.u.username];
if (message.u) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (message.u) {
if (!message.u) {
return;
}

message.u.name = users[message.u.username];

(message.mentions || []).forEach((mention) => { mention.name = users[mention.username]; });
(message.mentions || []).forEach((mention) => { mention.name = users[mention.username]; });

Object.keys(message.reactions || {}).forEach((reaction) => {
const names = message.reactions[reaction].usernames.map((username) => users[username]);
message.reactions[reaction].names = names;
});
Object.keys(message.reactions || {}).forEach((reaction) => {
const names = message.reactions[reaction].usernames.map((username) => users[username]);
message.reactions[reaction].names = names;
});
}
});

return messages;
Expand Down