diff options
Diffstat (limited to 'webapp/src/components/bidding_box.rs')
-rw-r--r-- | webapp/src/components/bidding_box.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/webapp/src/components/bidding_box.rs b/webapp/src/components/bidding_box.rs new file mode 100644 index 0000000..38a543f --- /dev/null +++ b/webapp/src/components/bidding_box.rs @@ -0,0 +1,37 @@ +use yew::prelude::*; +use crate::bridge_engine::Raise; +use crate::components::bid_css_class; + +#[function_component(BiddingBox)] +pub fn bidding_box(props: &BiddingBoxProps) -> Html { + let bids: Html = Raise::all_raises() + .iter() + .map(|bid| { + let mut class = if Some(*bid) <= props.current_bid { + classes!("disabled") + } else { + classes!("enabled") + }; + class.extend(classes!(bid_css_class(bid.suit))); + html! { + <div class={class}> + { bid.level } + </div> + } + }) + .collect(); + + html! { + <div class="bidding-box"> + { bids } + <div>{ "Pass" }</div> + <div>{ "X" }</div> + <div>{ "XX" }</div> + </div> + } +} + +#[derive(PartialEq, Properties, Clone)] +pub struct BiddingBoxProps { + pub current_bid: Option<Raise>, +} |