commit 12f3b2963b78fc4e3de2ccbc01973e9615ff16ff parent 9c583642b50b3fe1ecec6f6ce1ac80e5f70ff31d Author: Marcel <mtrnord1@gmail.com> Date: Mon, 1 Jun 2020 11:24:29 +0200 Add another check when handling event syncs Took 6 minutes Diffstat:
| M | src/app/components/event_list.rs | | | 26 | ++++++++++++++++++-------- |
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/src/app/components/event_list.rs b/src/app/components/event_list.rs @@ -71,15 +71,25 @@ impl Component for EventList { match response { Response::Sync((room_id, msg)) => { // TODO handle all events - if !(self.state.events[&room_id] - .iter() - .map(|x| x.event_id.clone()) - .collect::<Vec<EventId>>() - .contains(&msg.event_id)) - { - self.state.events.get_mut(&room_id).unwrap().push(msg); + if self.state.events.contains_key(&room_id) { + if !(self.state.events[&room_id] + .iter() + .map(|x| x.event_id.clone()) + .collect::<Vec<EventId>>() + .contains(&msg.event_id)) + { + self.state.events.get_mut(&room_id).unwrap().push(msg); + return true; + } else { + return false; + } + } else { + let mut msgs = Vec::new(); + msgs.push(msg); + self.state.events.insert(room_id, msgs); + return true; } - true + return false; } Response::OldMessages((room_id, mut messages)) => { if self.state.events.contains_key(&room_id) {