fix: context menu viewport sınır kontrolü - alta/sağa taşma düzeltildi
All checks were successful
Build MIPS Binary / build (push) Successful in 5m14s

This commit is contained in:
spinline
2026-02-11 00:24:42 +03:00
parent ca1dd0caac
commit 8ef3008cb8

View File

@@ -64,6 +64,17 @@ pub fn TorrentContextMenu(
<Show when=move || open.get()> <Show when=move || open.get()>
{ {
let (x, y) = position.get(); let (x, y) = position.get();
// Menü yaklaşık boyutları
let menu_width = 200;
let menu_height = 220;
let window = web_sys::window().unwrap();
let vw = window.inner_width().unwrap().as_f64().unwrap() as i32;
let vh = window.inner_height().unwrap().as_f64().unwrap() as i32;
// Sağa taşarsa sola aç, alta taşarsa yukarı
let final_x = if x + menu_width > vw { x - menu_width } else { x };
let final_y = if y + menu_height > vh { y - menu_height } else { y };
let final_x = final_x.max(0);
let final_y = final_y.max(0);
view! { view! {
<div <div
class="fixed inset-0 z-[99]" class="fixed inset-0 z-[99]"
@@ -79,7 +90,7 @@ pub fn TorrentContextMenu(
/> />
<div <div
class="fixed z-[100] min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95" class="fixed z-[100] min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95"
style=format!("left: {}px; top: {}px;", x, y) style=format!("left: {}px; top: {}px;", final_x, final_y)
on:click=move |e: MouseEvent| e.stop_propagation() on:click=move |e: MouseEvent| e.stop_propagation()
> >
// Start // Start