Fix context menu click-outside behavior to prevent underlying actions
When a context menu is open, clicking outside should only close the menu without triggering underlying actions (like drag-to-create in week view). Implementation: - Enhanced global click handler to prevent default actions when menus are open - Added context menu state propagation through component hierarchy - Modified interactive components to check context menu state before acting - Provides double protection at both global and component levels 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,8 @@ pub struct WeekViewProps {
|
||||
pub on_calendar_context_menu: Option<Callback<(web_sys::MouseEvent, NaiveDate)>>,
|
||||
#[prop_or_default]
|
||||
pub on_create_event: Option<Callback<(NaiveDate, NaiveDateTime, NaiveDateTime)>>,
|
||||
#[prop_or_default]
|
||||
pub context_menus_open: bool,
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
@@ -119,7 +121,13 @@ pub fn week_view(props: &WeekViewProps) -> Html {
|
||||
|
||||
let onmousedown = {
|
||||
let drag_state = drag_state_clone.clone();
|
||||
let context_menus_open = props.context_menus_open;
|
||||
Callback::from(move |e: MouseEvent| {
|
||||
// Don't start drag if any context menu is open
|
||||
if context_menus_open {
|
||||
return;
|
||||
}
|
||||
|
||||
// Only handle left-click (button 0)
|
||||
if e.button() != 0 {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user