From 3e6f02f48a0af1195dde11743ba4cf6606afb652 Mon Sep 17 00:00:00 2001 From: HF Date: Wed, 9 Feb 2022 18:17:41 +0100 Subject: [PATCH] convert createdAt for chat messages to unix timestamp --- src/components/windows/Chat.jsx | 6 ++++-- src/core/ChatMessageBuffer.js | 9 ++++++--- src/reducers/chat.js | 11 ++++++++++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/components/windows/Chat.jsx b/src/components/windows/Chat.jsx index edf2865..6cac12b 100644 --- a/src/components/windows/Chat.jsx +++ b/src/components/windows/Chat.jsx @@ -156,10 +156,12 @@ const Chat = ({ channelMessages.map((message) => ((blockedIds.includes(message[3])) ? null : ( ))) diff --git a/src/core/ChatMessageBuffer.js b/src/core/ChatMessageBuffer.js index 15c48b9..c0b2ca6 100644 --- a/src/core/ChatMessageBuffer.js +++ b/src/core/ChatMessageBuffer.js @@ -90,7 +90,10 @@ class ChatMessageBuffer { 'uid', 'name', 'flag', - 'createdAt', + [ + Sequelize.fn('UNIX_TIMESTAMP', Sequelize.col('createdAt')), + 'ts', + ] ], where: { cid }, limit, @@ -106,14 +109,14 @@ class ChatMessageBuffer { uid, name, flag, - createdAt, + ts, } = messagesModel[i]; messages.push([ name, message, flag, uid, - createdAt, + ts, ]); } return messages; diff --git a/src/reducers/chat.js b/src/reducers/chat.js index 11cd8e8..eeb3b7a 100644 --- a/src/reducers/chat.js +++ b/src/reducers/chat.js @@ -24,6 +24,9 @@ const initialState = { messages: {}, }; +// used to give every message a unique incrementing key +let msgId = 0; + export default function chat( state = initialState, action, @@ -140,11 +143,13 @@ export default function chat( if (!state.messages[channel] || !state.channels[channel]) { return state; } + const ts = Math.round(Date.now() / 1000); + msgId += 1; const messages = { ...state.messages, [channel]: [ ...state.messages[channel], - [name, text, country, user], + [name, text, country, user, ts, msgId], ], }; if (messages[channel].length > MAX_CHAT_MESSAGES) { @@ -169,6 +174,10 @@ export default function chat( case 'RECEIVE_CHAT_HISTORY': { const { cid, history } = action; + for (let i = 0; i < history.length; i += 1) { + msgId += 1; + history[i].push(msgId); + } return { ...state, messages: {