From e7dcdaeea00ff8638a9c9721ea1171d53410fdf8 Mon Sep 17 00:00:00 2001 From: Titouan Rigoudy Date: Mon, 11 Apr 2016 15:46:58 +0200 Subject: [PATCH] Make room_data.messages an Immutable.List. --- src/reducers/rooms.js | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/reducers/rooms.js b/src/reducers/rooms.js index ac96987..71a45b6 100644 --- a/src/reducers/rooms.js +++ b/src/reducers/rooms.js @@ -12,19 +12,6 @@ const initialState = { selected: null }; -const reduceRoom = (old_room, new_room) => { - if (!old_room) { - return { - messages: Immutable.List(), - ...new_room - }; - } - return { - ...old_room, - ...new_room - }; -}; - const reduceRoomList = (old_rooms, room_list) => { // First sort the room list by room name room_list.sort((room_pair_1, room_pair_2) => { @@ -41,8 +28,16 @@ const reduceRoomList = (old_rooms, room_list) => { // Then build the new rooms map let new_rooms = Immutable.OrderedMap(); for (const [ room_name, room_data ] of room_list) { + // Transform room_data.messages to an immutable list. + room_data.messages = Immutable.List(room_data.messages); + // Get the old room data. const old_data = old_rooms.get(room_name); - const new_data = reduceRoom(old_data, room_data); + // Merge the old data and the new data, overwriting with new data if + // conflicting. + const new_data = { + ...old_data, + ...room_data + }; new_rooms = new_rooms.set(room_name, new_data); } return new_rooms;