summaryrefslogtreecommitdiffstats
path: root/src/components/chats_list.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/chats_list.rs')
-rw-r--r--src/components/chats_list.rs22
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");