commit 411ae630685cb817f55a34dd045bab51b751ef80
parent d820a910e7c91180c225b097d4c237c751063384
Author: Marcel <mtrnord1@gmail.com>
Date: Fri, 10 Jul 2020 18:37:52 +0200
Some more migration to the monorepo
Took 16 minutes
Diffstat:
8 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/src/app/components/event_list.rs b/src/app/components/event_list.rs
@@ -3,8 +3,8 @@ use std::{collections::HashMap, rc::Rc};
use log::*;
use matrix_sdk::{
events::{
- room::message::MessageEventContent, AnyMessageEventContent, AnyMessageEventStub,
- MessageEvent
+ room::message::MessageEventContent, AnyMessageEvent, AnyMessageEventContent,
+ AnyMessageEventStub,
},
identifiers::RoomId,
Room,
@@ -27,7 +27,7 @@ pub struct EventList {
#[derive(Default)]
pub struct State {
// TODO handle all events
- pub events: HashMap<RoomId, Vec<AnyMessageEventStub>>,
+ pub events: HashMap<RoomId, Vec<AnyMessageEvent>>,
}
#[allow(clippy::large_enum_variant)]
@@ -94,7 +94,7 @@ impl Component for EventList {
}
}
Response::OldMessages((room_id, messages)) => {
- let mut deserialized_messages: Vec<AnyMessageEventStub> = messages
+ let mut deserialized_messages: Vec<AnyMessageEvent> = messages
.iter()
.map(|x| x.deserialize())
.filter_map(Result::ok)
diff --git a/src/app/components/events/image.rs b/src/app/components/events/image.rs
@@ -1,6 +1,6 @@
use std::rc::Rc;
-use crate::app::components::events::{RoomExt, EventExt};
+use crate::app::components::events::{EventExt, RoomExt};
use matrix_sdk::{
events::{room::message::ImageMessageEventContent, AnyMessageEventStub},
Room,
diff --git a/src/app/components/events/mod.rs b/src/app/components/events/mod.rs
@@ -24,16 +24,16 @@ impl EventExt for AnyMessageEventStub {
}
pub trait RoomExt {
- fn get_sender_displayname<'a>(&self, event: &'a AnyMessageEventStub) -> &'a str;
+ fn get_sender_displayname<'a>(&'a self, event: &'a AnyMessageEventStub) -> &'a str;
fn get_sender_avatar<'a>(
- &self,
+ &'a self,
homeserver_url: &'a Url,
event: &'a AnyMessageEventStub,
) -> Option<Url>;
}
impl RoomExt for Room {
- fn get_sender_displayname<'a>(&self, event: &'a AnyMessageEventStub) -> &'a str {
+ fn get_sender_displayname<'a>(&'a self, event: &'a AnyMessageEventStub) -> &'a str {
self.joined_members
.get(&event.sender())
.or_else(|| self.invited_members.get(&event.sender()))
@@ -56,6 +56,4 @@ impl RoomExt for Room {
member.avatar_url.as_deref()?,
))
}
-
}
-
diff --git a/src/app/components/events/notice.rs b/src/app/components/events/notice.rs
@@ -9,7 +9,7 @@ use web_sys::Node;
use yew::prelude::*;
use yew::virtual_dom::VNode;
-use crate::app::components::events::{RoomExt, EventExt};
+use crate::app::components::events::{EventExt, RoomExt};
pub(crate) struct Notice {
props: Props,
diff --git a/src/app/components/events/text.rs b/src/app/components/events/text.rs
@@ -1,6 +1,6 @@
use std::rc::Rc;
-use crate::app::components::events::{RoomExt, EventExt};
+use crate::app::components::events::{EventExt, RoomExt};
use linkify::LinkFinder;
use matrix_sdk::{
events::{room::message::TextMessageEventContent, AnyMessageEventStub},
diff --git a/src/app/components/events/video.rs b/src/app/components/events/video.rs
@@ -1,6 +1,6 @@
use std::rc::Rc;
-use crate::app::components::events::{RoomExt, EventExt};
+use crate::app::components::events::{EventExt, RoomExt};
use matrix_sdk::{
events::{room::message::VideoMessageEventContent, AnyMessageEventStub},
Room,
diff --git a/src/app/matrix/mod.rs b/src/app/matrix/mod.rs
@@ -6,7 +6,7 @@ use matrix_sdk::{
api::r0::{filter::RoomEventFilter, message::get_message_events::Direction},
events::{
room::message::{
- FormattedBody, MessageEvent, MessageEventContent, MessageFormat,
+ FormattedBody, MessageEventContent, MessageFormat,
TextMessageEventContent,
},
AnyMessageEvent, AnyMessageEventStub, AnyRoomEvent, EventJson,
@@ -68,7 +68,7 @@ pub enum Response {
Sync((RoomId, EventJson<AnyMessageEventStub>)),
JoinedRoomSync(RoomId),
SyncPing,
- OldMessages((RoomId, Vec<EventJson<MessageEvent>>)),
+ OldMessages((RoomId, Vec<EventJson<AnyMessageEvent>>)),
JoinedRoom((RoomId, Room)),
SaveSession(SessionStore),
}
@@ -287,7 +287,7 @@ impl Agent for MatrixAgent {
.unwrap();
// TODO save end point for future loading
- let mut wrapped_messages: Vec<EventJson<MessageEvent>> = Vec::new();
+ let mut wrapped_messages: Vec<EventJson<AnyMessageEvent>> = Vec::new();
let chunk_iter: Vec<EventJson<AnyRoomEvent>> = messsages.chunk;
let (oks, _): (Vec<_>, Vec<_>) = chunk_iter
.iter()
@@ -346,7 +346,8 @@ impl Agent for MatrixAgent {
event.content = MessageEventContent::Video(video_event);
}
- let serialized_event = EventJson::from(event.clone());
+ let serialized_event =
+ EventJson::from(AnyMessageEvent::RoomMessage(event.clone()));
wrapped_messages.push(serialized_event);
}
}
diff --git a/src/app/matrix/sync.rs b/src/app/matrix/sync.rs
@@ -7,6 +7,7 @@ use log::*;
use matrix_sdk::{
api::r0::sync::sync_events::Response as SyncResponse,
events::{
+
room::message::MessageEventContent, AnyMessageEventStub, AnyRoomEventStub,
AnyStateEventStub, EventJson,
},
@@ -19,7 +20,7 @@ use yew::Callback;
use lazy_static::lazy_static;
-use crate::app::components::events::{RoomExt};
+use crate::app::components::events::RoomExt;
use crate::app::matrix::types::{get_media_download_url, get_video_media_download_url};
use crate::app::matrix::Response;
use crate::utils::notifications::Notifications;
@@ -107,9 +108,15 @@ impl Sync {
let (avatar_url, room_name, displayname) = {
let room = room.read().await;
(
- room.get_sender_avatar(&homeserver_url, &AnyMessageEventStub::RoomMessage(cloned_event)),
+ room.get_sender_avatar(
+ &homeserver_url,
+ &AnyMessageEventStub::RoomMessage(cloned_event.clone()),
+ ),
room.display_name(),
- room.get_sender_displayname(&AnyMessageEventStub::RoomMessage(cloned_event)).to_string(),
+ room.get_sender_displayname(&AnyMessageEventStub::RoomMessage(
+ cloned_event,
+ ))
+ .to_string(),
)
};
@@ -168,7 +175,7 @@ impl Sync {
}
}
- let serialized_event = EventJson::from(event);
+ let serialized_event = EventJson::from(AnyMessageEventStub::RoomMessage(event));
let resp = Response::Sync((room_id.clone(), serialized_event));
self.callback.emit(resp);
}