From 685ac902e3faf4ed5a76b8c859b01f7d2e2d9ea0 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 25 Nov 2022 17:10:17 -0500 Subject: Add state machine for GameState and corresponding player view of the state --- webapp/src/components/game.rs | 6 ++---- webapp/src/components/table.rs | 9 +++++---- 2 files changed, 7 insertions(+), 8 deletions(-) (limited to 'webapp/src') diff --git a/webapp/src/components/game.rs b/webapp/src/components/game.rs index 9511eb2..c5e2602 100644 --- a/webapp/src/components/game.rs +++ b/webapp/src/components/game.rs @@ -4,9 +4,7 @@ use log::{error, info}; use yew::prelude::*; fn init_state() -> GameState { - let dealer = Player::East; - let deal = deal(); - GameState::Bidding { dealer, deal } + GameState::new(deal(), Player::East) } #[function_component(Game)] @@ -46,7 +44,7 @@ pub fn game() -> Html { }; let center = match &*state { - GameState::Bidding { dealer, deal } => { + GameState::Bidding { dealer, deal, bidding } => { let on_contract = { let state = state.clone(); let dealer = dealer.clone(); diff --git a/webapp/src/components/table.rs b/webapp/src/components/table.rs index 92302b2..c4f693e 100644 --- a/webapp/src/components/table.rs +++ b/webapp/src/components/table.rs @@ -1,6 +1,6 @@ use gloo_net::http::Request; use log::info; -use protocol::bridge_engine::TableView; +use protocol::bridge_engine::GameStatePlayerView; use yew::prelude::*; use crate::use_app_context; use crate::components::Hand; @@ -9,7 +9,7 @@ use crate::components::Hand; pub fn online_table(props: &OnlineTableProps) -> Html { let ctx = use_app_context(); - let table_state: UseStateHandle> = use_state(|| None); + let table_state: UseStateHandle> = use_state(|| None); { // TODO update this from server state let table_state = table_state.clone(); @@ -21,6 +21,7 @@ pub fn online_table(props: &OnlineTableProps) -> Html { let response = Request::get(&format!("/api/table/{}", props.table.id)) .send() .await?; + // info!("Got response: {:#?}", response.body()); let table = response.json().await?; table_state.set(Some(table)); Ok(()) @@ -66,7 +67,7 @@ pub fn table(props: &TableProps) -> Html { html! { <>
- +

{ "Table view" }

{ format!("{:#?}", props.table) }
@@ -76,5 +77,5 @@ pub fn table(props: &TableProps) -> Html { #[derive(PartialEq, Properties, Clone)] pub struct TableProps { - pub table: TableView, + pub table: GameStatePlayerView, } -- cgit v1.2.3