use crate::components::websocket::WebSocketContext; use leptos::*; use leptos_use::core::ConnectionReadyState; use lib::*; #[component] pub fn Debug() -> impl IntoView { let websocket = expect_context::(); let state_summary = expect_context::>>(); // Signals let (online_users, set_online_users) = create_signal(0); let (active_games, set_active_games) = create_signal(0); // Websocket stuff let status = move || websocket.ready_state.get().to_string(); let connected = move || websocket.ready_state.get() == ConnectionReadyState::Open; let open_connection = move |_| { (websocket.open)(); }; let close_connection = move |_| { (websocket.close)(); set_online_users(0); set_active_games(0); }; // Update server info -> move this to a new component create_effect(move |_| { state_summary.with(move |state_summary| { if let Some(state_summary) = state_summary { set_online_users(state_summary.online_users); set_active_games(state_summary.active_games); } }) }); view! {

Debug:

"Connection Status: " {status}

"Users Online: " {online_users}

"Active Games: " {active_games}

} }