diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-12-27 19:55:10 -0500 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-12-27 19:58:45 -0500 |
commit | 21b7b57336cd3bf7bd328ada38c6069a48504f85 (patch) | |
tree | c0d47337f584403febcfc9ec365ea1ea810e782e /webapp/src/components/app_context_provider.rs | |
parent | 3418ebf4db2375e0dfe2343da57d674e1f4fd57f (diff) |
`cargo fmt`
Diffstat (limited to 'webapp/src/components/app_context_provider.rs')
-rw-r--r-- | webapp/src/components/app_context_provider.rs | 86 |
1 files changed, 45 insertions, 41 deletions
diff --git a/webapp/src/components/app_context_provider.rs b/webapp/src/components/app_context_provider.rs index 6298c2b..081026c 100644 --- a/webapp/src/components/app_context_provider.rs +++ b/webapp/src/components/app_context_provider.rs @@ -1,14 +1,14 @@ -use log::error; use crate::{routing::Route, utils::ok_json}; +use anyhow::Context; use gloo_net::http::Request; +use log::error; use log::info; use protocol::UserInfo; -use uuid::Uuid; use std::future::Future; +use uuid::Uuid; use wasm_bindgen_futures::spawn_local; use yew::prelude::*; use yew_router::prelude::*; -use anyhow::Context; #[derive(Properties, Clone, PartialEq, Debug)] pub struct ErrorInfoProperties { @@ -35,7 +35,7 @@ impl AppContext { let error = self.state.error.clone(); spawn_local(async move { if let Err(err) = f.await { - error!("Error occurred: {err:?}"); + error!("Error occurred: {err:?}"); error.set(Some(ErrorInfoProperties { message: format!("{err:?}"), })); @@ -58,40 +58,41 @@ impl AppContext { } pub fn create_table(&self) { - let user = self.state.user.clone(); - let history = self.history.clone(); - self.spawn_async(async move { - let response = Request::post("/api/table").send().await?; - let table_id: Uuid = ok_json(response).await.context("creating table")?; + let user = self.state.user.clone(); + let history = self.history.clone(); + self.spawn_async(async move { + let response = Request::post("/api/table").send().await?; + let table_id: Uuid = + ok_json(response).await.context("creating table")?; info!("Created table {table_id}"); - if let Some(user_info) = user.as_ref() { - user.set(Some(UserInfo { - table: Some(protocol::Table { id: table_id }), - ..(user_info.clone()) - })); - } - history.push(Route::Home); - Ok(()) - }); + if let Some(user_info) = user.as_ref() { + user.set(Some(UserInfo { + table: Some(protocol::Table { id: table_id }), + ..(user_info.clone()) + })); + } + history.push(Route::Home); + Ok(()) + }); } pub fn leave_table(&self) { - let user = self.state.user.clone(); - let history = self.history.clone(); - self.spawn_async(async move { - let response = Request::delete("/api/table").send().await?; - if !response.ok() { - anyhow::bail!("error while leaving table"); - } - if let Some(user_info) = user.as_ref() { - user.set(Some(UserInfo { - table: None, - ..(user_info.clone()) - })); - } - history.push(Route::Home); - Ok(()) - }); + let user = self.state.user.clone(); + let history = self.history.clone(); + self.spawn_async(async move { + let response = Request::delete("/api/table").send().await?; + if !response.ok() { + anyhow::bail!("error while leaving table"); + } + if let Some(user_info) = user.as_ref() { + user.set(Some(UserInfo { + table: None, + ..(user_info.clone()) + })); + } + history.push(Route::Home); + Ok(()) + }); } } @@ -101,7 +102,10 @@ pub struct Props { } async fn initialize_user_info() -> Result<Option<UserInfo>, anyhow::Error> { - let response = Request::get("/api/user/info").send().await.context("fetching user_info")?; + let response = Request::get("/api/user/info") + .send() + .await + .context("fetching user_info")?; if response.status() == 401 { web_sys::window() .unwrap() @@ -113,7 +117,7 @@ async fn initialize_user_info() -> Result<Option<UserInfo>, anyhow::Error> { } pub fn use_app_context() -> AppContext { - let state : AppState = use_context::<AppState>().unwrap(); + let state: AppState = use_context::<AppState>().unwrap(); let history = use_history().unwrap(); AppContext { state, history } @@ -136,7 +140,10 @@ pub fn app_context_provider(props: &Props) -> Html { match initialize_user_info().await { Ok(user_info) => user.set(user_info), Err(e) => error.set(Some(ErrorInfoProperties { - message: format!("Could not contact server: {:?}", e), + message: format!( + "Could not contact server: {:?}", + e + ), })), }; }); @@ -155,10 +162,7 @@ pub fn app_context_provider(props: &Props) -> Html { info!("Recomputing state"); info!("User is {:?}", *user); - let state = AppState { - user, - error, - }; + let state = AppState { user, error }; html! { <ContextProvider<AppState> context={state}> |