convert createdAt for chat messages to unix timestamp

This commit is contained in:
HF 2022-02-09 18:17:41 +01:00
parent 25169dcf62
commit 3e6f02f48a
3 changed files with 20 additions and 6 deletions

View File

@ -156,10 +156,12 @@ const Chat = ({
channelMessages.map((message) => ((blockedIds.includes(message[3])) channelMessages.map((message) => ((blockedIds.includes(message[3]))
? null : ( ? null : (
<ChatMessage <ChatMessage
uid={message[3]}
name={message[0]} name={message[0]}
country={message[2]}
msg={message[1]} msg={message[1]}
country={message[2]}
uid={message[3]}
ts={message[4]}
key={message[5]}
windowId={windowId} windowId={windowId}
/> />
))) )))

View File

@ -90,7 +90,10 @@ class ChatMessageBuffer {
'uid', 'uid',
'name', 'name',
'flag', 'flag',
'createdAt', [
Sequelize.fn('UNIX_TIMESTAMP', Sequelize.col('createdAt')),
'ts',
]
], ],
where: { cid }, where: { cid },
limit, limit,
@ -106,14 +109,14 @@ class ChatMessageBuffer {
uid, uid,
name, name,
flag, flag,
createdAt, ts,
} = messagesModel[i]; } = messagesModel[i];
messages.push([ messages.push([
name, name,
message, message,
flag, flag,
uid, uid,
createdAt, ts,
]); ]);
} }
return messages; return messages;

View File

@ -24,6 +24,9 @@ const initialState = {
messages: {}, messages: {},
}; };
// used to give every message a unique incrementing key
let msgId = 0;
export default function chat( export default function chat(
state = initialState, state = initialState,
action, action,
@ -140,11 +143,13 @@ export default function chat(
if (!state.messages[channel] || !state.channels[channel]) { if (!state.messages[channel] || !state.channels[channel]) {
return state; return state;
} }
const ts = Math.round(Date.now() / 1000);
msgId += 1;
const messages = { const messages = {
...state.messages, ...state.messages,
[channel]: [ [channel]: [
...state.messages[channel], ...state.messages[channel],
[name, text, country, user], [name, text, country, user, ts, msgId],
], ],
}; };
if (messages[channel].length > MAX_CHAT_MESSAGES) { if (messages[channel].length > MAX_CHAT_MESSAGES) {
@ -169,6 +174,10 @@ export default function chat(
case 'RECEIVE_CHAT_HISTORY': { case 'RECEIVE_CHAT_HISTORY': {
const { cid, history } = action; const { cid, history } = action;
for (let i = 0; i < history.length; i += 1) {
msgId += 1;
history[i].push(msgId);
}
return { return {
...state, ...state,
messages: { messages: {