From 2b4b789250ddcd65c3de68ff4f5a7868296fc790 Mon Sep 17 00:00:00 2001 From: tommy Date: Thu, 6 Nov 2025 14:11:24 +0800 Subject: [PATCH] fix bug --- src/components/ui/select.rs | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/components/ui/select.rs b/src/components/ui/select.rs index 2a9dbc7..8d03716 100644 --- a/src/components/ui/select.rs +++ b/src/components/ui/select.rs @@ -24,7 +24,7 @@ pub fn Select( #[props(default)] disabled: bool, #[props(optional)] on_change: Option>, ) -> Element { - let open = use_signal(|| false); + let mut open = use_signal(|| false); let current = use_signal(move || selected.clone()); let on_change_handler = on_change.clone(); let trigger_id = id.unwrap_or_default(); @@ -44,25 +44,9 @@ pub fn Select( div { class: "ui-select", "data-disabled": disabled, - if open() { - div { - style: "position: fixed; inset: 0; z-index: 20; background: transparent;", - onmousedown: { - let mut open_signal = open.clone(); - move |event| { - event.stop_propagation(); - open_signal.set(false); - } - }, - ontouchstart: { - let mut open_signal = open.clone(); - move |event| { - event.stop_propagation(); - open_signal.set(false); - } - }, - } - } + onclick: move |event| { + event.stop_propagation(); + }, button { class: "ui-select-trigger", "data-open": if open() { "true" } else { "false" }, @@ -88,6 +72,9 @@ pub fn Select( if open() { div { class: "ui-select-content", + onclick: move |event| { + event.stop_propagation(); + }, div { class: "ui-select-list", for option in options.iter().cloned() {