diff --git a/services/frontend-leptos/frontend/src/app.rs b/services/frontend-leptos/frontend/src/app.rs index 69472ec..d60f57f 100644 --- a/services/frontend-leptos/frontend/src/app.rs +++ b/services/frontend-leptos/frontend/src/app.rs @@ -1,6 +1,7 @@ use leptos::prelude::*; use shared_types::ui_state::Tab; use crate::auth::AuthOverlay; +use crate::ws::context::WsContext; // ── Contexts ──────────────────────────────────────────── @@ -33,6 +34,9 @@ pub fn App() -> impl IntoView { provide_context(auth.clone()); provide_context(ui.clone()); + let ws = WsContext::new("ws://localhost:3001"); + provide_context(ws.clone()); + // Auth check: redirect "live" tab to "messages" if not authenticated create_effect(move |_| { if !auth.authenticated.get() && ui.active_tab.get() == Tab::Live { @@ -40,6 +44,16 @@ pub fn App() -> impl IntoView { } }); + { + let ws = ws.clone(); + let auth = auth.clone(); + create_effect(move |_| { + if auth.authenticated.get() { + ws.connect(); + } + }); + } + view! {