summaryrefslogtreecommitdiff
path: root/webapp
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-09-22 20:26:26 -0400
committerKjetil Orbekk <kj@orbekk.com>2022-09-22 20:39:51 -0400
commit507a81f25dc6e38df91dce2eed63a8b7d282184f (patch)
tree6f2653409c7d528a0f85eccbb579c71429ecef6e /webapp
parent6a11eedc3df00c88bdf5fcb004f2afd4fa3dc49f (diff)
Add component to show tricks played
Diffstat (limited to 'webapp')
-rw-r--r--webapp/src/bridge_engine.rs4
-rw-r--r--webapp/src/components.rs2
-rw-r--r--webapp/src/components/game.rs5
-rw-r--r--webapp/src/components/tricks_played.rs16
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>,
+}