From c64a7a640ac8c59eb6339f0a06d2ad2efab3fd11 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 7 Oct 2022 16:59:29 -0400 Subject: Start working on authentication --- webapp/src/main.rs | 60 ++++++++++++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 33 deletions(-) (limited to 'webapp/src/main.rs') diff --git a/webapp/src/main.rs b/webapp/src/main.rs index 6fcf59f..a3fcebc 100644 --- a/webapp/src/main.rs +++ b/webapp/src/main.rs @@ -1,4 +1,5 @@ -use data::MyMessage; +use std::rc::Rc; + #[allow(unused_imports)] use log::{debug, error, info, warn}; use yew::prelude::*; @@ -6,7 +7,7 @@ use yew_router::prelude::*; pub mod bridge_engine; pub mod card; pub mod components; -use components::Game; +use components::{AppContextProvider, AppContext, Game}; use gloo_net::http::Request; extern crate wee_alloc; @@ -30,48 +31,41 @@ fn main() { #[function_component(App)] pub fn app() -> Html { - let msg = use_state(|| "".to_string()); - { - let msg = msg.clone(); - use_effect_with_deps( - move |_| { - wasm_bindgen_futures::spawn_local(async move { - let m: MyMessage = Request::get("/api/test") - .send() - .await - .unwrap() - .json() - .await - .unwrap(); - msg.set(m.message) - }); - || () - }, - (), - ) + html! { + <> + + + render={Switch::render(switch)} /> + + + } +} + +#[function_component(Home)] +fn home() -> Html { + let ctx = use_context::>().unwrap(); - info!("Got message from server: {}", &*msg); + let user = match &ctx.user { + Some(userinfo) => html! { +

{ format!("Logged in as {}", userinfo.username) }

+ }, + None => html! {

{ "Not logged in" }

}, + }; html! { <> - - render={Switch::render(switch)} /> - + { user } +

+ to={Route::Playground}>{ "Playground" }> +

} } fn switch(routes: &Route) -> Html { match routes { - Route::Home => html! { - <> -

{ "Hello!" }

-

- to={Route::Playground}>{ "Playground" }> -

- - }, + Route::Home => html!{ }, Route::Playground => html! {
}, -- cgit v1.2.3