fix: menülerin dışarıya tıklayınca kapanmama sorunu giderildi (stop_propagation kaldırıldı ve click event'ine geçildi)
All checks were successful
Build MIPS Binary / build (push) Successful in 4m34s
All checks were successful
Build MIPS Binary / build (push) Successful in 4m34s
This commit is contained in:
@@ -132,10 +132,7 @@ pub fn StatusBar() -> impl IntoView {
|
||||
<div
|
||||
class="flex items-center gap-2 cursor-pointer hover:text-primary transition-colors select-none"
|
||||
title="Global Download Speed - Click to Set Limit"
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
toggle(1);
|
||||
}
|
||||
on:click=move |_| toggle(1)
|
||||
>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 13.5L12 21m0 0l-7.5-7.5M12 21V3" />
|
||||
@@ -162,8 +159,7 @@ pub fn StatusBar() -> impl IntoView {
|
||||
<li>
|
||||
<button
|
||||
class=move || if is_active() { "bg-primary/10 text-primary font-bold text-xs flex justify-between" } else { "text-xs flex justify-between" }
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
on:click=move |_| {
|
||||
set_limit("down", val);
|
||||
close_all();
|
||||
}
|
||||
@@ -185,10 +181,7 @@ pub fn StatusBar() -> impl IntoView {
|
||||
<div
|
||||
class="flex items-center gap-2 cursor-pointer hover:text-primary transition-colors select-none"
|
||||
title="Global Upload Speed - Click to Set Limit"
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
toggle(2);
|
||||
}
|
||||
on:click=move |_| toggle(2)
|
||||
>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M4.5 10.5L12 3m0 0l7.5 7.5M12 3v18" />
|
||||
@@ -215,8 +208,7 @@ pub fn StatusBar() -> impl IntoView {
|
||||
<li>
|
||||
<button
|
||||
class=move || if is_active() { "bg-primary/10 text-primary font-bold text-xs flex justify-between" } else { "text-xs flex justify-between" }
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
on:click=move |_| {
|
||||
set_limit("up", val);
|
||||
close_all();
|
||||
}
|
||||
@@ -238,10 +230,7 @@ pub fn StatusBar() -> impl IntoView {
|
||||
<div
|
||||
class="btn btn-ghost btn-xs btn-square"
|
||||
title="Change Theme"
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
toggle(3);
|
||||
}
|
||||
on:click=move |_| toggle(3)
|
||||
>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M9.53 16.122a3 3 0 0 0-5.78 1.128 2.25 2.25 0 0 1-2.4 2.245 4.5 4.5 0 0 0 8.4-2.245c0-.399-.078-.78-.22-1.128Zm0 0a15.998 15.998 0 0 0 3.388-1.62m-5.043-.025a15.994 15.994 0 0 1 1.622-3.395m3.42 3.42a15.995 15.995 0 0 0 4.764-4.648l3.876-5.814a1.151 1.151 0 0 0-1.597-1.597L14.146 6.32a15.996 15.996 0 0 0-4.649 4.763m3.42 3.42a6.776 6.776 0 0 0-3.42-3.42" />
|
||||
@@ -261,8 +250,7 @@ pub fn StatusBar() -> impl IntoView {
|
||||
<li>
|
||||
<button
|
||||
class=move || if current_theme.get() == theme { "bg-primary/10 text-primary font-bold text-xs capitalize" } else { "text-xs capitalize" }
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
on:click=move |_| {
|
||||
set_current_theme.set(theme.to_string());
|
||||
close_all();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use leptos::*;
|
||||
use leptos_use::use_timeout_fn;
|
||||
use leptos_use::{on_click_outside, use_timeout_fn};
|
||||
use crate::store::{get_action_messages, show_toast_with_signal};
|
||||
use shared::NotificationLevel;
|
||||
|
||||
@@ -166,6 +166,8 @@ pub fn TorrentTable() -> impl IntoView {
|
||||
|
||||
// Signal-based sort dropdown for mobile
|
||||
let (sort_open, set_sort_open) = create_signal(false);
|
||||
let sort_menu_ref = create_node_ref::<html::Div>();
|
||||
let _ = on_click_outside(sort_menu_ref, move |_| set_sort_open.set(false));
|
||||
|
||||
let sort_arrow = move |col: SortColumn| {
|
||||
if sort_col.get() == col {
|
||||
@@ -344,12 +346,11 @@ pub fn TorrentTable() -> impl IntoView {
|
||||
<div class="px-3 py-2 border-b border-base-200 flex justify-between items-center bg-base-100/95 backdrop-blur z-10 shrink-0">
|
||||
<span class="text-xs font-bold opacity-50 uppercase tracking-wider">"Torrents"</span>
|
||||
|
||||
<div class="relative">
|
||||
<div class="relative" node_ref=sort_menu_ref>
|
||||
<div
|
||||
role="button"
|
||||
class="btn btn-ghost btn-xs gap-1 opacity-70 font-normal"
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
on:click=move |_| {
|
||||
let cur = sort_open.get_untracked();
|
||||
set_sort_open.set(!cur);
|
||||
}
|
||||
@@ -385,8 +386,7 @@ pub fn TorrentTable() -> impl IntoView {
|
||||
<button
|
||||
type="button"
|
||||
class=move || if is_active() { "bg-primary/10 text-primary font-bold flex justify-between" } else { "flex justify-between" }
|
||||
on:pointerdown=move |e| {
|
||||
e.stop_propagation();
|
||||
on:click=move |_| {
|
||||
handle_sort(col);
|
||||
set_sort_open.set(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user