cards/client/src/components/game.rs

40 lines
1.4 KiB
Rust
Raw Normal View History

2024-08-09 02:57:27 -04:00
use crate::components::websocket::WebSocketContext;
2024-08-09 01:21:04 -04:00
use leptos::*;
2024-08-09 02:57:27 -04:00
use lib::*;
2024-08-09 01:21:04 -04:00
#[component]
pub fn Game() -> impl IntoView {
2024-08-09 02:57:27 -04:00
let websocket = expect_context::<WebSocketContext>();
let game_meta = expect_context::<ReadSignal<Option<GameMeta>>>();
let (game_name, set_game_name) = create_signal("".to_string());
let (game_host, set_game_host) = create_signal("".to_string());
2024-08-10 19:50:26 -04:00
let (game_players, set_game_players) = create_signal(vec![]);
let (game_czar, set_game_czar) = create_signal("".to_string());
2024-08-12 17:14:27 -04:00
let (game_black, set_game_black) = create_signal(("".to_string(), 0u8));
2024-08-10 19:50:26 -04:00
let (game_white, set_game_white) = create_signal(vec![]);
2024-08-09 02:57:27 -04:00
create_effect(move |_| {
if let Some(game) = game_meta() {
2024-08-10 19:50:26 -04:00
set_game_name(game.name.clone());
set_game_host(game.host.clone());
set_game_players(game.players.clone());
set_game_czar(game.czar.clone());
set_game_black(game.black.clone());
set_game_white(game.white.clone());
2024-08-09 02:57:27 -04:00
}
});
2024-08-09 01:21:04 -04:00
view! {
<div class="p-1">
<h2 class="text-2xl">Game</h2>
2024-08-12 17:14:27 -04:00
<p>Name: {move || game_name()}</p>
<p>Host: {move || game_host()}</p>
<p>Players: {move || game_players()}</p>
<p>Czar: {move || game_czar()}</p>
<p>Black Card: {move || game_black().0} Pick: {move || game_black().1}</p>
<p>Your Cards: {move || game_white()}</p>
2024-08-09 01:21:04 -04:00
</div>
}
}