diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-09-22 20:26:26 -0400 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-09-22 20:39:51 -0400 |
commit | 507a81f25dc6e38df91dce2eed63a8b7d282184f (patch) | |
tree | 6f2653409c7d528a0f85eccbb579c71429ecef6e /webapp/src | |
parent | 6a11eedc3df00c88bdf5fcb004f2afd4fa3dc49f (diff) |
Add component to show tricks played
Diffstat (limited to 'webapp/src')
-rw-r--r-- | webapp/src/bridge_engine.rs | 4 | ||||
-rw-r--r-- | webapp/src/components.rs | 2 | ||||
-rw-r--r-- | webapp/src/components/game.rs | 5 | ||||
-rw-r--r-- | webapp/src/components/tricks_played.rs | 16 |
4 files changed, 24 insertions, 3 deletions
diff --git a/webapp/src/bridge_engine.rs b/webapp/src/bridge_engine.rs index 0552d3f..6d13f50 100644 --- a/webapp/src/bridge_engine.rs +++ b/webapp/src/bridge_engine.rs @@ -122,6 +122,10 @@ impl DealInPlay { } } + pub fn tricks(&self) -> &Vec<Trick> { + &self.tricks_played + } + pub fn trick_in_play(&self) -> &TurnInPlay { &self.in_progress } diff --git a/webapp/src/components.rs b/webapp/src/components.rs index 073de58..2bc8ff8 100644 --- a/webapp/src/components.rs +++ b/webapp/src/components.rs @@ -8,8 +8,10 @@ mod bidding; mod show_bid; mod game; mod trick_in_play; +mod tricks_played; pub use self::trick_in_play::*; +pub use self::tricks_played::*; pub use self::card::*; pub use self::bidding_box::*; pub use self::bidding_table::*; diff --git a/webapp/src/components/game.rs b/webapp/src/components/game.rs index 91b3022..b42f912 100644 --- a/webapp/src/components/game.rs +++ b/webapp/src/components/game.rs @@ -2,7 +2,7 @@ use crate::bridge_engine::{self, Contract, Player, DealInPlay, DealInPlayResult} use crate::card; use crate::card::Deal; use crate::card::Suit; -use crate::components::{Bidding, Hand, ShowBid, TrickInPlay}; +use crate::components::{Bidding, Hand, ShowBid, TrickInPlay, TricksPlayed}; use log::{error, info}; use yew::prelude::*; @@ -115,7 +115,7 @@ pub fn game() -> Html { } => { html! { <> - <p>{ "Time to play" }</p> + <TricksPlayed tricks={ playing_deal.tricks().clone() } /> <TrickInPlay in_progress={ playing_deal.trick_in_play().clone() } /> </> } @@ -129,7 +129,6 @@ pub fn game() -> Html { if let GameState::Play { contract, bidding, .. } = &*state { <ShowBid contract={contract.clone()} bidding={bidding.clone()}/> } - <p>{ format!("Phase: {:?}", &*state) }</p> <button onclick={shuffle}>{ "Shuffle" }</button> </div> <div class="center"> diff --git a/webapp/src/components/tricks_played.rs b/webapp/src/components/tricks_played.rs new file mode 100644 index 0000000..352a030 --- /dev/null +++ b/webapp/src/components/tricks_played.rs @@ -0,0 +1,16 @@ +use yew::prelude::*; +use crate::bridge_engine::Trick; + +#[function_component(TricksPlayed)] +pub fn tricks_played(props: &TricksPlayedProperties) -> Html { + html! { + <> + <p>{ format!("{} tricks played", props.tricks.len()) }</p> + </> + } +} + +#[derive(PartialEq, Properties, Clone)] +pub struct TricksPlayedProperties { + pub tricks: Vec<Trick>, +} |