fix: resolve context menu race condition and add debug logs
This commit is contained in:
@@ -647,7 +647,9 @@ pub fn App() -> impl IntoView {
|
|||||||
torrent_hash=cm_target_hash.get()
|
torrent_hash=cm_target_hash.get()
|
||||||
on_close=Callback::from(move |_| set_cm_visible.set(false))
|
on_close=Callback::from(move |_| set_cm_visible.set(false))
|
||||||
on_action=Callback::from(move |(action, hash): (String, String)| {
|
on_action=Callback::from(move |(action, hash): (String, String)| {
|
||||||
|
logging::log!("App: Received action '{}' for hash '{}'", action, hash);
|
||||||
if action == "delete" || action == "delete_with_data" {
|
if action == "delete" || action == "delete_with_data" {
|
||||||
|
logging::log!("App: Showing delete modal");
|
||||||
set_pending_action.set(Some((action, hash)));
|
set_pending_action.set(Some((action, hash)));
|
||||||
set_show_delete_modal.set(true);
|
set_show_delete_modal.set(true);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ pub fn ContextMenu(
|
|||||||
let hash = torrent_hash.clone();
|
let hash = torrent_hash.clone();
|
||||||
let action_str = action.to_string();
|
let action_str = action.to_string();
|
||||||
|
|
||||||
on_close.call(()); // Always close menu
|
logging::log!("ContextMenu: Action '{}' for hash '{}'", action_str, hash);
|
||||||
on_action.call((action_str, hash)); // Delegate
|
on_action.call((action_str, hash)); // Delegate FIRST
|
||||||
|
on_close.call(()); // Close menu AFTER
|
||||||
};
|
};
|
||||||
|
|
||||||
if !visible {
|
if !visible {
|
||||||
|
|||||||
@@ -40,7 +40,10 @@ pub fn Modal(
|
|||||||
class=format!("flex-1 px-4 py-3 rounded-xl transition-all font-bold text-white shadow-lg {}",
|
class=format!("flex-1 px-4 py-3 rounded-xl transition-all font-bold text-white shadow-lg {}",
|
||||||
if is_danger { "bg-red-500 hover:bg-red-600 shadow-red-500/20" } else { "bg-blue-500 hover:bg-blue-600 shadow-blue-500/20" }
|
if is_danger { "bg-red-500 hover:bg-red-600 shadow-red-500/20" } else { "bg-blue-500 hover:bg-blue-600 shadow-blue-500/20" }
|
||||||
)
|
)
|
||||||
on:click=move |_| on_confirm.with_value(|cb| cb.call(()))
|
on:click=move |_| {
|
||||||
|
logging::log!("Modal: Confirm clicked");
|
||||||
|
on_confirm.with_value(|cb| cb.call(()))
|
||||||
|
}
|
||||||
>
|
>
|
||||||
{confirm_text.get_value()}
|
{confirm_text.get_value()}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user