diff options
Diffstat (limited to '')
-rw-r--r-- | src/components/chats_list.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/components/chats_list.rs b/src/components/chats_list.rs index a5ecc9b..f958ebe 100644 --- a/src/components/chats_list.rs +++ b/src/components/chats_list.rs @@ -20,18 +20,14 @@ pub fn ChatsList() -> impl IntoView { .map_err(|e| e.to_string()); match chats { Ok(c) => { - let chats = c - .into_iter() - .map(|((chat, chat_user), (message, message_user))| { - ( - chat.correspondent.clone(), - ( - ArcMacawChat::got_chat_and_user(chat, chat_user), - ArcMacawMessage::got_message_and_user(message, message_user), - ), - ) - }) - .collect::<IndexMap<BareJID, _>>(); + let mut chats = IndexMap::new(); + for ((chat, chat_user), (message, message_user)) in c { + chats.insert(chat.correspondent.clone(), ( + ArcMacawChat::got_chat_and_user(chat, chat_user).await, + ArcMacawMessage::got_message_and_user(message, message_user).await, + + )); + } set_chats.set(chats); } Err(_) => { @@ -64,7 +60,7 @@ pub fn ChatsList() -> impl IntoView { let chat = client.get_chat(to.clone()).await.unwrap(); let user = client.get_user(to.clone()).await.unwrap(); debug!("before got chat"); - let chat = ArcMacawChat::got_chat_and_user(chat, user); + let chat = ArcMacawChat::got_chat_and_user(chat, user).await; debug!("after got chat"); chats.insert_before(0, to, (chat, new_message)); debug!("done setting"); |