commit b75cd49f1e368397490617f4af8ec037a020af1e
parent 934c0f36b5964dd7ab8501da61420e6df88b9b94
Author: Marcel <mtrnord1@gmail.com>
Date: Mon, 8 Jun 2020 17:01:20 +0200
Run cargo fmt
Took 36 minutes
Diffstat:
15 files changed, 124 insertions(+), 67 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
@@ -39,6 +39,19 @@ rust-embed = { version = "5", features = ["debug-embed", "compression"]}
[dev-dependencies]
wasm-bindgen-test = "0.3"
+reqwest = { version = "0.10", features = ["blocking", "json"] }
+futures-timer = { version = "3.0.2", features = ["wasm-bindgen"] }
+
+[dev-dependencies.web-sys]
+version = "0.3"
+features = [
+ 'Document',
+ 'Element',
+ 'HtmlElement',
+ 'Node',
+ 'Window',
+]
+
[dependencies.web-sys]
version = "0.3"
diff --git a/src/app/components/event_list.rs b/src/app/components/event_list.rs
@@ -8,7 +8,7 @@ use matrix_sdk::{
};
use yew::prelude::*;
-use crate::app::components::events::{text::Text, notice::Notice, image::Image, video::Video};
+use crate::app::components::events::{image::Image, notice::Notice, text::Text, video::Video};
use crate::app::matrix::{MatrixAgent, Request, Response};
pub struct EventList {
@@ -209,7 +209,7 @@ impl EventList {
.display_name
.as_ref()
.map(ToString::to_string)
- .unwrap_or_else(||event.sender.to_string()),
+ .unwrap_or_else(|| event.sender.to_string()),
}
};
match &event.content {
diff --git a/src/app/components/events/image.rs b/src/app/components/events/image.rs
@@ -1,9 +1,9 @@
+use crate::app::components::events::{get_sender_displayname, is_new_user};
use matrix_sdk::{
- events::room::message::{MessageEvent, ImageMessageEventContent},
+ events::room::message::{ImageMessageEventContent, MessageEvent},
Room,
};
use yew::prelude::*;
-use crate::app::components::events::{is_new_user, get_sender_displayname};
pub(crate) struct Image {
props: Props,
@@ -58,11 +58,38 @@ impl Component for Image {
"".to_string()
};
-
- let caption = format!("{}: {}", sender_displayname, self.props.image_event.as_ref().unwrap().body);
- if self.props.image_event.as_ref().unwrap().url.clone().is_some() {
- let image_url = self.props.image_event.as_ref().unwrap().url.clone().unwrap();
- let thumbnail = match self.props.image_event.as_ref().unwrap().info.clone().unwrap().thumbnail_url {
+ let caption = format!(
+ "{}: {}",
+ sender_displayname,
+ self.props.image_event.as_ref().unwrap().body
+ );
+ if self
+ .props
+ .image_event
+ .as_ref()
+ .unwrap()
+ .url
+ .clone()
+ .is_some()
+ {
+ let image_url = self
+ .props
+ .image_event
+ .as_ref()
+ .unwrap()
+ .url
+ .clone()
+ .unwrap();
+ let thumbnail = match self
+ .props
+ .image_event
+ .as_ref()
+ .unwrap()
+ .info
+ .clone()
+ .unwrap()
+ .thumbnail_url
+ {
None => image_url.clone(),
Some(v) => v,
};
diff --git a/src/app/components/events/text.rs b/src/app/components/events/text.rs
@@ -59,14 +59,7 @@ impl Component for Text {
} else {
"".to_string()
};
- if self
- .props
- .text_event
- .clone()
- .unwrap()
- .formatted
- .is_some()
- {
+ if self.props.text_event.clone().unwrap().formatted.is_some() {
let message = if new_user {
format!(
"<displayname>{}:</displayname> {}",
diff --git a/src/app/components/events/video.rs b/src/app/components/events/video.rs
@@ -1,9 +1,9 @@
+use crate::app::components::events::{get_sender_displayname, is_new_user};
use matrix_sdk::{
events::room::message::{MessageEvent, VideoMessageEventContent},
Room,
};
use yew::prelude::*;
-use crate::app::components::events::{is_new_user, get_sender_displayname};
pub(crate) struct Video {
props: Props,
@@ -58,11 +58,38 @@ impl Component for Video {
"".to_string()
};
-
- let caption = format!("{}: {}", sender_displayname, self.props.video_event.as_ref().unwrap().body);
- if self.props.video_event.as_ref().unwrap().url.clone().is_some() {
- let video_url = self.props.video_event.as_ref().unwrap().url.clone().unwrap();
- let thumbnail = match self.props.video_event.as_ref().unwrap().info.clone().unwrap().thumbnail_url {
+ let caption = format!(
+ "{}: {}",
+ sender_displayname,
+ self.props.video_event.as_ref().unwrap().body
+ );
+ if self
+ .props
+ .video_event
+ .as_ref()
+ .unwrap()
+ .url
+ .clone()
+ .is_some()
+ {
+ let video_url = self
+ .props
+ .video_event
+ .as_ref()
+ .unwrap()
+ .url
+ .clone()
+ .unwrap();
+ let thumbnail = match self
+ .props
+ .video_event
+ .as_ref()
+ .unwrap()
+ .info
+ .clone()
+ .unwrap()
+ .thumbnail_url
+ {
None => video_url.clone(),
Some(v) => v,
};
diff --git a/src/app/components/room_list.rs b/src/app/components/room_list.rs
@@ -4,9 +4,9 @@ use matrix_sdk::{identifiers::RoomId, js_int::UInt, Room};
use serde::{Deserialize, Serialize};
use wasm_bindgen::JsCast;
use web_sys::HtmlElement;
-use yew::{Bridge, Bridged, Component, ComponentLink, Html};
use yew::prelude::*;
use yew::utils::document;
+use yew::{Bridge, Bridged, Component, ComponentLink, Html};
use yewtil::NeqAssign;
use tr::tr;
diff --git a/src/app/matrix/mod.rs b/src/app/matrix/mod.rs
@@ -167,7 +167,7 @@ impl Agent for MatrixAgent {
user_id: matrix_sdk::identifiers::UserId::try_from(
stored_session.user_id.as_str(),
)
- .unwrap(),
+ .unwrap(),
device_id: stored_session.device_id,
};
client.restore_login(session).await;
@@ -336,7 +336,7 @@ impl Agent for MatrixAgent {
for event in deserialized_events.into_iter().rev() {
if let RoomEvent::RoomMessage(mut event) = event {
if let MessageEventContent::Image(mut image_event) =
- event.clone().content
+ event.clone().content
{
if image_event.url.is_some() {
let new_url = Some(get_media_download_url(
diff --git a/src/app/matrix/sync.rs b/src/app/matrix/sync.rs
@@ -19,9 +19,8 @@ pub struct Sync {
impl Sync {
pub async fn start_sync(&self) {
let client = self.matrix_client.clone();
- let settings = SyncSettings::default()
- .timeout(Duration::from_secs(30));
- //.full_state(true);
+ let settings = SyncSettings::default().timeout(Duration::from_secs(30));
+ //.full_state(true);
client
.sync_forever(settings, |response| self.on_sync_response(response))
diff --git a/src/app/mod.rs b/src/app/mod.rs
@@ -1,6 +1,6 @@
use yew::{prelude::*, virtual_dom::VNode};
-use yew_router::{prelude::*, Switch};
use yew_router::agent::RouteRequest::ChangeRoute;
+use yew_router::{prelude::*, Switch};
use crate::app::matrix::{MatrixAgent, Response};
use crate::app::views::{login::Login, main_view::MainView};
diff --git a/src/app/views/login.rs b/src/app/views/login.rs
@@ -1,13 +1,13 @@
-use yew::prelude::*;
-use serde::{Deserialize, Serialize};
use log::*;
+use serde::{Deserialize, Serialize};
+use yew::prelude::*;
use tr::tr;
use crate::app::matrix::{MatrixAgent, Request, Response};
-use crate::errors::{MatrixError, Field};
-use wasm_bindgen::__rt::std::thread::sleep;
+use crate::errors::{Field, MatrixError};
use wasm_bindgen::__rt::core::time::Duration;
+use wasm_bindgen::__rt::std::thread::sleep;
pub struct Login {
link: ComponentLink<Self>,
@@ -31,7 +31,7 @@ pub struct State {
password: String,
error: Option<String>,
error_field: Option<Field>,
- retries: u64
+ retries: u64,
}
impl Component for Login {
@@ -48,7 +48,7 @@ impl Component for Login {
password: "".to_string(),
error: None,
error_field: None,
- retries: 0
+ retries: 0,
};
Login {
link,
@@ -93,7 +93,7 @@ impl Component for Login {
self.state.error = Some(error.to_string());
self.state.error_field = Some(field);
true
- },
+ }
MatrixError::LoginTimeout => {
// If we had less than 10 tries try again
if self.state.retries < 10 {
@@ -104,21 +104,20 @@ impl Component for Login {
false
} else {
self.state.loading = false;
- self.state.error = Some("Login failed after 10 tries.".to_string());
+ self.state.error =
+ Some("Login failed after 10 tries.".to_string());
true
}
- },
+ }
MatrixError::SDKError(e) => {
// TODO handle login error != timeout better
error!("SDK Error: {}", e);
false
}
- _ => {
- false
- }
+ _ => false,
}
}
- _ => false
+ _ => false,
}
}
}
@@ -134,18 +133,10 @@ impl Component for Login {
let mut mxid_classes = "uk-input";
let mut password_classes = "uk-input";
match self.state.error_field.as_ref() {
- Some(v) => {
- match v {
- Field::Homeserver => {
- homeserver_classes = "uk-input uk-form-danger"
- },
- Field::MXID => {
- mxid_classes = "uk-input uk-form-danger"
- },
- Field::Password => {
- password_classes = "uk-input uk-form-danger"
- },
- }
+ Some(v) => match v {
+ Field::Homeserver => homeserver_classes = "uk-input uk-form-danger",
+ Field::MXID => mxid_classes = "uk-input uk-form-danger",
+ Field::Password => password_classes = "uk-input uk-form-danger",
},
_ => {}
}
diff --git a/src/app/views/main_view.rs b/src/app/views/main_view.rs
@@ -1,8 +1,8 @@
use log::*;
use matrix_sdk::Room;
use serde::{Deserialize, Serialize};
-use yew::ComponentLink;
use yew::prelude::*;
+use yew::ComponentLink;
use tr::tr;
diff --git a/src/errors.rs b/src/errors.rs
@@ -1,6 +1,6 @@
-use thiserror::Error;
+use serde::{Deserialize, Serialize};
use std::fmt;
-use serde::{Serialize, Deserialize};
+use thiserror::Error;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Field {
diff --git a/src/lib.rs b/src/lib.rs
@@ -7,7 +7,7 @@ use i18n_embed::{language_loader, I18nEmbed, WebLanguageRequester};
use rust_embed::RustEmbed;
use wasm_bindgen::prelude::*;
-mod app;
+pub mod app;
mod constants;
mod errors;
diff --git a/tests/web.rs b/tests/web.rs
@@ -6,11 +6,3 @@ extern crate wasm_bindgen_test;
use wasm_bindgen_test::*;
wasm_bindgen_test_configure!(run_in_browser);
-
-#[wasm_bindgen_test]
-fn pass() {
- assert_eq!(1 + 1, 2);
-}
-
-#[wasm_bindgen_test]
-fn login() {}
diff --git a/webdriver.json b/webdriver.json
@@ -0,0 +1,15 @@
+{
+ "moz:firefoxOptions": {
+ "prefs": {
+ "media.navigator.streams.fake": true,
+ "media.navigator.permission.disabled": true
+ },
+ "args": []
+ },
+ "goog:chromeOptions": {
+ "args": [
+ "--use-fake-device-for-media-stream",
+ "--use-fake-ui-for-media-stream"
+ ]
+ }
+}