From 759c4ae4d096f453460d9a0f18a95233fe713c9b Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 26 Aug 2020 16:54:44 -0500 Subject: [PATCH] Fix chat submission --- app/soapbox/features/chats/components/chat_message_list.js | 5 ++++- app/soapbox/reducers/chat_message_lists.js | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/soapbox/features/chats/components/chat_message_list.js b/app/soapbox/features/chats/components/chat_message_list.js index 2960995ec..e7c37d8cc 100644 --- a/app/soapbox/features/chats/components/chat_message_list.js +++ b/app/soapbox/features/chats/components/chat_message_list.js @@ -9,7 +9,10 @@ import emojify from 'soapbox/features/emoji/emoji'; const mapStateToProps = (state, { chatMessageIds }) => ({ me: state.get('me'), - chatMessages: chatMessageIds.map(id => state.getIn(['chat_messages', id])).toList(), + chatMessages: chatMessageIds.reduce((acc, curr) => { + const chatMessage = state.getIn(['chat_messages', curr]); + return chatMessage ? acc.push(chatMessage) : acc; + }, ImmutableList()), }); export default @connect(mapStateToProps) diff --git a/app/soapbox/reducers/chat_message_lists.js b/app/soapbox/reducers/chat_message_lists.js index c05b4e85e..c039a4a0b 100644 --- a/app/soapbox/reducers/chat_message_lists.js +++ b/app/soapbox/reducers/chat_message_lists.js @@ -8,7 +8,8 @@ import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutabl const initialState = ImmutableMap(); const updateList = (state, chatId, messageIds) => { - const newIds = state.get(chatId, ImmutableOrderedSet()).union(messageIds); + const ids = state.get(chatId, ImmutableOrderedSet()); + const newIds = ids.union(messageIds); return state.set(chatId, newIds); }; @@ -29,7 +30,7 @@ export default function chatMessageLists(state = initialState, action) { case CHAT_MESSAGES_FETCH_SUCCESS: return updateList(state, action.chatId, action.data.map(chat => chat.id)); case CHAT_MESSAGE_SEND_SUCCESS: - return updateList(state, action.chatId, action.data.id); + return updateList(state, action.chatId, [action.data.id]); default: return state; }