From 030b45c000210b153b5ef224ddcaa668de763638 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Thu, 22 Sep 2022 09:15:09 -0400 Subject: Add component for current trick --- webapp/src/components/card.rs | 1 + webapp/src/components/game.rs | 15 +++++++++++++-- webapp/src/components/trick_in_play.rs | 23 +++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 webapp/src/components/trick_in_play.rs (limited to 'webapp/src/components') diff --git a/webapp/src/components/card.rs b/webapp/src/components/card.rs index 5401899..d5aee36 100644 --- a/webapp/src/components/card.rs +++ b/webapp/src/components/card.rs @@ -24,5 +24,6 @@ pub fn ccard(props: &CardProps) -> Html { #[derive(PartialEq, Properties, Clone)] pub struct CardProps { pub card: card::Card, + #[prop_or_default] pub onclick: Callback, } diff --git a/webapp/src/components/game.rs b/webapp/src/components/game.rs index e893691..accdd33 100644 --- a/webapp/src/components/game.rs +++ b/webapp/src/components/game.rs @@ -2,7 +2,7 @@ use crate::bridge_engine::{self, Contract, Player, PlayingDeal, PlayingDealResul use crate::card; use crate::card::Deal; use crate::card::Suit; -use crate::components::{Bidding, Hand, ShowBid}; +use crate::components::{Bidding, Hand, ShowBid, TrickInPlay}; use log::{error, info}; use yew::prelude::*; @@ -108,7 +108,18 @@ pub fn game() -> Html { } } - GameState::Play { .. } => html! {

{ "Time to play" }

}, + GameState::Play { + playing_deal, + contract, + bidding, + } => { + html! { + <> +

{ "Time to play" }

+ + + } + }, GameState::PassedOut { .. } => html! {

{ "Everyone passed" }

}, }; diff --git a/webapp/src/components/trick_in_play.rs b/webapp/src/components/trick_in_play.rs new file mode 100644 index 0000000..086a422 --- /dev/null +++ b/webapp/src/components/trick_in_play.rs @@ -0,0 +1,23 @@ +use yew::prelude::*; +use crate::bridge_engine::PlayTurn; +use crate::components::Card; + +#[function_component(TrickInPlay)] +pub fn trick_in_play(props: &TrickInPlayProps) -> Html { + let cards = props.in_progress.cards_played().iter().map(|card| { + html! { + + } + }); +html! { + <> +

{ format!("Leader: {:?}", props.in_progress.leader()) }

+ { for cards } + +} +} + +#[derive(PartialEq, Properties, Clone)] +pub struct TrickInPlayProps { + pub in_progress: PlayTurn, +} -- cgit v1.2.3