daydream

A small matrix web client written in rust
git clone git://archive.git.mtrnord.blog/daydream-mx/daydream.git
Log | Files | Refs | README | LICENSE

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:
Msrc/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) {