diff --git a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addBulkGroupChatMsgs.js b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addBulkGroupChatMsgs.js index 05662d54843a9f4780a047838eadc1799c9e921d..cef1990b4c284860fe3e3d31871950da46e7772d 100644 --- a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addBulkGroupChatMsgs.js +++ b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addBulkGroupChatMsgs.js @@ -7,14 +7,22 @@ export default async function addBulkGroupChatMsgs(msgs) { if (!msgs.length) return; const mappedMsgs = msgs - .map(({ chatId, meetingId, msg }) => ({ - _id: new Mongo.ObjectID()._str, - ...msg, - meetingId, - chatId, - message: parseMessage(msg.message), - sender: msg.sender.id, - })) + .map(({ chatId, meetingId, msg }) => { + const { + sender, + color, + ...restMsg + } = msg; + + return { + _id: new Mongo.ObjectID()._str, + ...restMsg, + meetingId, + chatId, + message: parseMessage(msg.message), + sender: sender.id, + }; + }) .map(el => flat(el, { safe: true })); try { diff --git a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addGroupChatMsg.js b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addGroupChatMsg.js index c87e2583c201b894c5aad173748460f110bffd28..a9e7d23f4e2b8ca4e964cc6e0d047f6865860ca4 100644 --- a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addGroupChatMsg.js +++ b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/addGroupChatMsg.js @@ -28,8 +28,16 @@ export default function addGroupChatMsg(meetingId, chatId, msg) { message: String, correlationId: Match.Maybe(String), }); + + const { + color, + sender, + ...restMsg + } = msg; + const msgDocument = { - ...msg, + ...restMsg, + sender: sender.id, meetingId, chatId, message: parseMessage(msg.message), diff --git a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/syncMeetingChatMsgs.js b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/syncMeetingChatMsgs.js index a226dd9636ab2588ca9059834ce2cc8e7c19ab96..e1231576e699b57f7310bdba59092f145a765aa7 100644 --- a/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/syncMeetingChatMsgs.js +++ b/bigbluebutton-html5/imports/api/group-chat-msg/server/modifiers/syncMeetingChatMsgs.js @@ -16,12 +16,18 @@ export default function syncMeetingChatMsgs(meetingId, chatId, msgs) { msgs .forEach((msg) => { + const { + sender, + color, + ...restMsg + } = msg; + const msgToSync = { - ...msg, + ...restMsg, meetingId, chatId, message: parseMessage(msg.message), - sender: msg.sender.id, + sender: sender.id, }; const modifier = flat(msgToSync, { safe: true }); diff --git a/bigbluebutton-html5/imports/ui/components/chat/time-window-list/time-window-chat-item/container.jsx b/bigbluebutton-html5/imports/ui/components/chat/time-window-list/time-window-chat-item/container.jsx index 2971429b24055cad40dd975225d44bb1667f4700..029d856eaca9cb4f2466feabbec400237f6941eb 100644 --- a/bigbluebutton-html5/imports/ui/components/chat/time-window-list/time-window-chat-item/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/time-window-list/time-window-chat-item/container.jsx @@ -29,21 +29,19 @@ export default function TimeWindowChatItemContainer(props) { key, timestamp, content, - color, } = message; - const messages = content; - const user = users[sender?.id]; + const user = users[sender]; const messageKey = key; return ( <TimeWindowChatItem { ...{ - color: user?.color || color, + color: user?.color, isModerator: user?.role === ROLE_MODERATOR, isOnline: !!user, avatar: user?.avatar, - name: user?.name || sender?.name, + name: user?.name, read: message.read, messages, isDefaultPoll, diff --git a/bigbluebutton-html5/imports/ui/components/components-data/chat-context/context.jsx b/bigbluebutton-html5/imports/ui/components/components-data/chat-context/context.jsx index 3e12ba996840d21945525e161e2b2c0049d8d5a7..a51e06fb1d2b72f678aab9360d179be3e7546e17 100644 --- a/bigbluebutton-html5/imports/ui/components/components-data/chat-context/context.jsx +++ b/bigbluebutton-html5/imports/ui/components/components-data/chat-context/context.jsx @@ -46,11 +46,11 @@ export const ChatContext = createContext(); const generateStateWithNewMessage = (msg, state) => { const timeWindow = generateTimeWindow(msg.timestamp); - const userId = msg.sender.id; + const userId = msg.sender; const keyName = userId + '-' + timeWindow; const msgBuilder = (msg, chat) => { const msgTimewindow = generateTimeWindow(msg.timestamp); - const key = msg.sender.id + '-' + msgTimewindow; + const key = msg.sender + '-' + msgTimewindow; const chatIndex = chat?.chatIndexes[key]; const { _id, @@ -66,7 +66,7 @@ const generateStateWithNewMessage = (msg, state) => { lastTimestamp: msg.timestamp, read: msg.chatId === PUBLIC_CHAT_KEY && msg.timestamp <= getLoginTime() ? true : false, content: [ - { id: msg.id, name: msg.sender.name, text: msg.message, time: msg.timestamp }, + { id: msg.id, text: msg.message, time: msg.timestamp }, ], } }; @@ -109,7 +109,7 @@ const generateStateWithNewMessage = (msg, state) => { const timewindowIndex = stateMessages.chatIndexes[keyName]; const groupMessage = messageGroups[keyName + '-' + timewindowIndex]; - if (!groupMessage || (groupMessage && groupMessage.sender.id !== stateMessages.lastSender.id)) { + if (!groupMessage || (groupMessage && groupMessage.sender !== stateMessages.lastSender)) { const [tempGroupMessage, sender, newIndex] = msgBuilder(msg, stateMessages); stateMessages.lastSender = sender; @@ -122,13 +122,13 @@ const generateStateWithNewMessage = (msg, state) => { messageGroups[key] = tempGroupMessage[key]; const message = tempGroupMessage[key]; const previousMessage = message.timestamp <= getLoginTime(); - if (!previousMessage && message.sender.id !== Auth.userID && !message.id.startsWith(SYSTEM_CHAT_TYPE)) { + if (!previousMessage && message.sender !== Auth.userID && !message.id.startsWith(SYSTEM_CHAT_TYPE)) { stateMessages.unreadTimeWindows.add(key); } }); } else { if (groupMessage) { - if (groupMessage.sender.id === stateMessages.lastSender.id) { + if (groupMessage.sender === stateMessages.lastSender) { const previousMessage = msg.timestamp <= getLoginTime(); const timeWindowKey = keyName + '-' + stateMessages.chatIndexes[keyName]; messageGroups[timeWindowKey] = { @@ -137,10 +137,10 @@ const generateStateWithNewMessage = (msg, state) => { read: previousMessage ? true : false, content: [ ...groupMessage.content, - { id: msg.id, name: groupMessage.sender.name, text: msg.message, time: msg.timestamp } + { id: msg.id, text: msg.message, time: msg.timestamp } ], }; - if (!previousMessage && groupMessage.sender.id !== Auth.userID) { + if (!previousMessage && groupMessage.sender !== Auth.userID) { stateMessages.unreadTimeWindows.add(timeWindowKey); } }