cleanup and hook up delete button
This commit is contained in:
parent
2f700042ba
commit
0f5703eb4f
3 changed files with 42 additions and 25 deletions
|
@ -8,23 +8,37 @@ use std::collections::BTreeSet;
|
||||||
|
|
||||||
#[component]
|
#[component]
|
||||||
pub fn Browser() -> impl IntoView {
|
pub fn Browser() -> impl IntoView {
|
||||||
|
// Websocket stuff
|
||||||
let websocket = expect_context::<WebSocketContext>();
|
let websocket = expect_context::<WebSocketContext>();
|
||||||
|
|
||||||
// TODO: don't do this
|
|
||||||
let tx = websocket.clone();
|
|
||||||
|
|
||||||
let connected = move || websocket.ready_state.get() == ConnectionReadyState::Open;
|
let connected = move || websocket.ready_state.get() == ConnectionReadyState::Open;
|
||||||
|
let tx = websocket.clone();
|
||||||
|
let (websocket_send, set_websocket_send) = create_signal("".to_string());
|
||||||
|
create_effect(move |_| {
|
||||||
|
tx.send(&websocket_send());
|
||||||
|
});
|
||||||
|
|
||||||
|
// Browser stuff
|
||||||
let game_browser_context = expect_context::<ReadSignal<Vec<GameBrowserMeta>>>();
|
let game_browser_context = expect_context::<ReadSignal<Vec<GameBrowserMeta>>>();
|
||||||
|
let (join_id, set_join_id) = create_signal("".to_string());
|
||||||
|
let (delete_id, set_delete_id) = create_signal("".to_string());
|
||||||
|
create_effect(move |_| {
|
||||||
|
set_websocket_send(to_string(&GameJoinRequest { id: join_id() }).unwrap());
|
||||||
|
});
|
||||||
|
create_effect(move |_| {
|
||||||
|
set_websocket_send(
|
||||||
|
to_string(&GameDeleteRequest {
|
||||||
|
delete_game_id: delete_id(),
|
||||||
|
})
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// New game stuff
|
||||||
let card_packs = expect_context::<ReadSignal<CardPacksMeta>>();
|
let card_packs = expect_context::<ReadSignal<CardPacksMeta>>();
|
||||||
|
|
||||||
let new_game_name_ref = create_node_ref::<Input>();
|
let new_game_name_ref = create_node_ref::<Input>();
|
||||||
|
let (show_packs, set_show_packs) = create_signal(false);
|
||||||
|
let show_packs_button = move |_| set_show_packs(!show_packs());
|
||||||
let (selected_packs, set_selected_packs) = create_signal::<BTreeSet<u8>>(BTreeSet::new());
|
let (selected_packs, set_selected_packs) = create_signal::<BTreeSet<u8>>(BTreeSet::new());
|
||||||
// create_effect(move |_| {
|
|
||||||
// logging::log!("{:#?}", selected_packs().iter().collect::<Vec<_>>());
|
|
||||||
// });
|
|
||||||
|
|
||||||
// Game stuff
|
|
||||||
let new_game = move |_| {
|
let new_game = move |_| {
|
||||||
if let Some(input) = new_game_name_ref.get() {
|
if let Some(input) = new_game_name_ref.get() {
|
||||||
if input.value() == *"" {
|
if input.value() == *"" {
|
||||||
|
@ -32,8 +46,8 @@ pub fn Browser() -> impl IntoView {
|
||||||
} else if selected_packs().is_empty() {
|
} else if selected_packs().is_empty() {
|
||||||
logging::log!("New game selected packs is empty!");
|
logging::log!("New game selected packs is empty!");
|
||||||
} else {
|
} else {
|
||||||
tx.send(
|
set_websocket_send(
|
||||||
&to_string(&NewGameRequest {
|
to_string(&NewGameRequest {
|
||||||
name: input.value(),
|
name: input.value(),
|
||||||
packs: selected_packs().into_iter().collect::<Vec<_>>(),
|
packs: selected_packs().into_iter().collect::<Vec<_>>(),
|
||||||
})
|
})
|
||||||
|
@ -44,16 +58,6 @@ pub fn Browser() -> impl IntoView {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let (show_packs, set_show_packs) = create_signal(false);
|
|
||||||
|
|
||||||
let show_packs_button = move |_| set_show_packs(!show_packs());
|
|
||||||
|
|
||||||
let (join_id, set_join_id) = create_signal("".to_string());
|
|
||||||
|
|
||||||
create_effect(move |_| {
|
|
||||||
websocket.send(&to_string(&GameJoinRequest { id: join_id() }).unwrap());
|
|
||||||
});
|
|
||||||
|
|
||||||
view! {
|
view! {
|
||||||
<div class="p-1">
|
<div class="p-1">
|
||||||
<h2 class="text-2xl">Game Browser</h2>
|
<h2 class="text-2xl">Game Browser</h2>
|
||||||
|
@ -91,7 +95,14 @@ pub fn Browser() -> impl IntoView {
|
||||||
>
|
>
|
||||||
Join
|
Join
|
||||||
</button>
|
</button>
|
||||||
<button type="button">Delete</button>
|
<button
|
||||||
|
type="button"
|
||||||
|
on:click=move |e| {
|
||||||
|
set_delete_id(event_target_value(&e));
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Delete
|
||||||
|
</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,8 +31,8 @@ impl WebSocketContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn send(&self, message: &String) {
|
pub fn send(&self, message: &str) {
|
||||||
(self.send)(message)
|
(self.send)(&message.to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,12 @@ use std::collections::BTreeSet;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
/// Delete game request
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
pub struct GameDeleteRequest {
|
||||||
|
pub delete_game_id: String,
|
||||||
|
}
|
||||||
|
|
||||||
/// Game join request
|
/// Game join request
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct GameJoinRequest {
|
pub struct GameJoinRequest {
|
||||||
|
|
Loading…
Add table
Reference in a new issue