diff --git a/frontend/src/components/layout/statusbar.rs b/frontend/src/components/layout/statusbar.rs
index 1183d21..76fe0f9 100644
--- a/frontend/src/components/layout/statusbar.rs
+++ b/frontend/src/components/layout/statusbar.rs
@@ -85,6 +85,16 @@ pub fn StatusBar() -> impl IntoView {
set_up_menu_open.set(false);
};
+ // Register global click listener to close menus when clicking outside
+ let close_menus = move |_| {
+ set_down_menu_open.set(false);
+ set_up_menu_open.set(false);
+ set_theme_open.set(false);
+ };
+
+ // Use window_event_listener from leptos
+ let _ = window_event_listener(ev::click, close_menus);
+
view! {
@@ -98,9 +108,11 @@ pub fn StatusBar() -> impl IntoView {
role="button"
class="flex items-center gap-2 cursor-pointer hover:text-primary transition-colors select-none"
title="Global Download Speed - Click to Set Limit"
- on:click=move |_| {
- logging::log!("Current Down Limit: {:?}", stats.get().down_limit);
- set_down_menu_open.update(|v| *v = !*v)
+ on:click=move |e| {
+ e.stop_propagation();
+ set_down_menu_open.update(|v| *v = !*v);
+ set_up_menu_open.set(false);
+ set_theme_open.set(false);
}
>
-
-
-
-
-
+
{
limits.clone().into_iter().map(|(val, label)| {
let is_active = move || {
@@ -132,7 +141,10 @@ pub fn StatusBar() -> impl IntoView {
-