Skip to content

Commit 3dbd6c4

Browse files
committed
Add "disconnected from server" on web ui
1 parent 81541f7 commit 3dbd6c4

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

pixie-web/src/main.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,31 @@ fn Group(
304304
}
305305
}
306306

307+
#[component]
308+
fn Disconnect(connected: ReadSignal<bool>) -> impl IntoView {
309+
view! {
310+
<Show when=move || !connected.get()>
311+
<div style="
312+
position: fixed;
313+
bottom: 1em;
314+
right: 1em;
315+
background-color: rgba(255, 0, 0, 0.1);
316+
color: #900;
317+
padding: 0.5em 1em;
318+
border-radius: 0.5em;
319+
z-index: 1000;
320+
pointer-events: none;
321+
">
322+
"⚠️ Disconnected from server"
323+
</div>
324+
</Show>
325+
}
326+
}
327+
307328
#[component]
308329
fn App() -> impl IntoView {
330+
let (connected, set_connected) = create_signal(true);
331+
309332
let (config, set_config) = create_signal(None::<Config>);
310333
let (hostmap, set_hostname) = create_signal(None::<HashMap<Ipv4Addr, String>>);
311334
let (units, set_units) = create_signal(None::<Vec<Unit>>);
@@ -335,6 +358,16 @@ fn App() -> impl IntoView {
335358
};
336359

337360
spawn_local(async move {
361+
struct Disconnect(WriteSignal<bool>);
362+
363+
impl Drop for Disconnect {
364+
fn drop(&mut self) {
365+
self.0.set(false);
366+
}
367+
}
368+
369+
let _disconnect = Disconnect(set_connected);
370+
338371
let stream = reqwest::get(status_url)
339372
.await
340373
.expect("could not connect to server");
@@ -396,6 +429,7 @@ fn App() -> impl IntoView {
396429
key=|x| *x
397430
children=render_group
398431
/>
432+
<Disconnect connected />
399433
}
400434
}
401435

0 commit comments

Comments
 (0)