From 89489b0cf0a6cf81dd29426fdf0eeb5aee9231de Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 23 Dec 2022 12:32:34 -0500 Subject: Display current and previous trick --- webapp/src/components/table.rs | 10 +++++++++- webapp/src/components/trick_in_play.rs | 35 ++++++++++++++++++++++++---------- 2 files changed, 34 insertions(+), 11 deletions(-) (limited to 'webapp/src/components') diff --git a/webapp/src/components/table.rs b/webapp/src/components/table.rs index bf66897..6ccb9d1 100644 --- a/webapp/src/components/table.rs +++ b/webapp/src/components/table.rs @@ -181,7 +181,15 @@ pub fn playing_view( html! { <>
- +
+
+ +
+
+

{"Last trick"}

+ +
+
{ dummy } diff --git a/webapp/src/components/trick_in_play.rs b/webapp/src/components/trick_in_play.rs index 5400b49..509b06c 100644 --- a/webapp/src/components/trick_in_play.rs +++ b/webapp/src/components/trick_in_play.rs @@ -1,24 +1,39 @@ -use protocol::bridge_engine::TurnInPlay; use crate::components::Card; +use protocol::bridge_engine::{Player, Trick}; use yew::prelude::*; #[function_component(TrickInPlay)] pub fn trick_in_play(props: &TrickInPlayProps) -> Html { - let cards = props.in_progress.cards_played().iter().map(|card| { - html! { - - } - }); + let leader = props.trick.leader; + let cards = props + .trick + .cards_played + .iter() + .enumerate() + .map(|(i, card)| { + // TODO: Support other player positions. + let class = match leader.many_next(i) { + Player::West => classes!("left"), + Player::North => classes!("top"), + Player::East => classes!("right"), + Player::South => classes!("bottom"), + }; + html! { +
+ +
+ } + }); html! { <> -

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

-

{ format!("It is {:?} to play", props.in_progress.current_player()) }

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