25.md (3481B)
1 # PR #25 Match refactor 2 3 - **Status:** merged 4 - **Author:** @jplatte 5 - **Created:** 2020-07-24T23:59:36Z 6 - **Branch:** match-refactor → MTRNord/Redesign 7 - **Merged:** 2020-07-25T00:10:13Z 8 - **Diff:** [25.diff](./25.diff) 9 10 --- 11 12 _No description._ 13 14 15 ## Review comments 16 17 ### @MTRNord on `src/app/components/event_list.rs`:81 — 2020-07-25T00:06:14Z 18 19 ```diff 20 @@ -67,55 +67,50 @@ impl Component for EventList { 21 22 fn update(&mut self, msg: Self::Message) -> bool { 23 match msg { 24 - Msg::NewMessage(response) => { 25 - match response { 26 - Response::Sync((room_id, raw_msg)) => { 27 - // TODO handle all events 28 - if let Ok(msg) = raw_msg.deserialize() { 29 - if self.state.events.contains_key(&room_id) { 30 - if !(self.state.events[&room_id] 31 - .iter() 32 - .any(|x| x.event_id() == msg.event_id())) 33 - { 34 - self.state.events.get_mut(&room_id).unwrap().push(msg); 35 - room_id == self.props.current_room.room_id 36 - } else { 37 - false 38 - } 39 - } else { 40 - let msgs = vec![msg]; 41 - self.state.events.insert(room_id.clone(), msgs); 42 - room_id == self.props.current_room.room_id 43 - } 44 - } else { 45 - false 46 - } 47 - } 48 - Response::OldMessages((room_id, messages)) => { 49 - let mut deserialized_messages: Vec<AnySyncMessageEvent> = messages 50 + Msg::NewMessage(Response::Sync((room_id, raw_msg))) => { 51 + // TODO handle all events 52 + if let Ok(msg) = raw_msg.deserialize() { 53 + if self.state.events.contains_key(&room_id) { 54 + if !(self.state.events[&room_id] 55 .iter() 56 - .map(|x| x.deserialize()) 57 - .filter_map(Result::ok) 58 - .map(|x| x.without_room_id()) 59 - .collect(); 60 - // This is a clippy false positive 61 - #[allow(clippy::map_entry)] 62 - if self.state.events.contains_key(&room_id) { 63 - self.state 64 - .events 65 - .get_mut(&room_id) 66 - .unwrap() 67 - .append(deserialized_messages.as_mut()); 68 - true 69 + .any(|x| x.event_id() == msg.event_id())) 70 + { 71 + self.state.events.get_mut(&room_id).unwrap().push(msg); 72 + room_id == self.props.current_room.room_id 73 } else { 74 - self.state.events.insert(room_id, deserialized_messages); 75 - true 76 + false 77 ``` 78 79 Why did you change this to false? It should update the event list on a new event. Or is just the git diff weird displayed? 80