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 c6a96e8cf05a99f50f22f3c137dbd3f75953995b
parent 270f096cb0529cb9cb5453b8566d4b72bec576a0
Author: Marcel <mtrnord1@gmail.com>
Date:   Wed, 17 Jun 2020 15:39:45 +0200

Try to fix routing

Took 16 minutes

Diffstat:
Msrc/app/matrix/mod.rs | 17+++++++++++------
Msrc/app/mod.rs | 8+++++++-
2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/app/matrix/mod.rs b/src/app/matrix/mod.rs @@ -1,3 +1,7 @@ +use std::collections::{HashMap, HashSet}; +use std::convert::TryFrom; +use std::sync::{Arc, Mutex}; + use log::*; use matrix_sdk::{ api::r0::{filter::RoomEventFilter, message::get_message_events::Direction}, @@ -14,10 +18,8 @@ use matrix_sdk::{ locks::RwLock, Client, ClientConfig, MessagesRequestBuilder, Room, Session, }; +use pulldown_cmark::{html, Options, Parser}; use serde::{Deserialize, Serialize}; -use std::collections::{HashMap, HashSet}; -use std::convert::TryFrom; -use std::sync::{Arc, Mutex}; use url::Url; use wasm_bindgen_futures::spawn_local; use yew::format::Json; @@ -27,12 +29,11 @@ use yew::worker::*; use crate::app::matrix::types::{get_media_download_url, get_video_media_download_url}; use crate::constants::AUTH_KEY; use crate::errors::{Field, MatrixError}; -use pulldown_cmark::{html, Options, Parser}; mod sync; pub mod types; -#[derive(Serialize, Deserialize, Default, Clone, Debug)] +#[derive(Default, Clone, Debug)] pub struct MatrixClient { pub(crate) homeserver: Option<String>, pub(crate) username: Option<String>, @@ -58,7 +59,7 @@ pub struct MatrixAgent { session: Option<SessionStore>, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Debug)] pub enum Request { SetHomeserver(String), SetUsername(String), @@ -475,6 +476,7 @@ impl MatrixAgent { let client = Client::new_with_config(homeserver_url, client_config).unwrap(); self.matrix_client = Some(client.clone()); + info!("got client"); // Also directly restore Login data let stored_session = self.session.clone().unwrap(); let session = Session { @@ -484,8 +486,11 @@ impl MatrixAgent { device_id: stored_session.device_id, }; let client_clone = client.clone(); + info!("before restore"); spawn_local(async move { + info!("before inner restore"); client_clone.restore_login(session).await; + info!("after restore"); }); Some(client) diff --git a/src/app/mod.rs b/src/app/mod.rs @@ -4,6 +4,7 @@ use yew_router::{prelude::*, Switch}; use crate::app::matrix::{MatrixAgent, Response}; use crate::app::views::{login::Login, main_view::MainView}; +use log::*; pub mod components; mod matrix; @@ -23,7 +24,10 @@ pub enum Msg { ChangeRoute(AppRoute), NewMessage(Response), } + pub struct App { + // While unused this needs to stay :( + matrix_agent: Box<dyn Bridge<MatrixAgent>>, route: Option<Route<()>>, route_agent: Box<dyn Bridge<RouteAgent<()>>>, } @@ -37,8 +41,9 @@ impl Component for App { let mut matrix_agent = MatrixAgent::bridge(link.callback(Msg::NewMessage)); matrix_agent.send(matrix::Request::GetLoggedIn); App { + matrix_agent, route_agent, - route: None + route: None, } } @@ -50,6 +55,7 @@ impl Component for App { Msg::ChangeRoute(route) => { let route: Route = route.into(); self.route = Some(route.clone()); + info!("{:?}", self.route); self.route_agent.send(ChangeRoute(route)); } Msg::NewMessage(response) => {