daydream.meta

Issues/PRs archive for daydream-mx/Daydream
git clone git://archive.git.mtrnord.blog/daydream-mx/daydream.meta.git
Log | Files | Refs

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