fix: close project picker on mouse leave and outside click
v1.58.1
This commit is contained in:
parent
9093149f5e
commit
09ae6d6a2d
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "my-weekly-todo-list",
|
"name": "my-weekly-todo-list",
|
||||||
"version": "1.58.0",
|
"version": "1.58.1",
|
||||||
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -95,6 +95,18 @@ export function GridTaskBlock({
|
|||||||
return () => { document.removeEventListener("touchstart", handler); document.removeEventListener("mousedown", handler); };
|
return () => { document.removeEventListener("touchstart", handler); document.removeEventListener("mousedown", handler); };
|
||||||
}, [touchActive]);
|
}, [touchActive]);
|
||||||
|
|
||||||
|
// Close project picker on outside click
|
||||||
|
useEffect(() => {
|
||||||
|
if (!showProjectPicker) return;
|
||||||
|
const handler = (e: Event) => {
|
||||||
|
if (projectPickerRef.current && !projectPickerRef.current.contains(e.target as Node)) {
|
||||||
|
setShowProjectPicker(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
document.addEventListener("mousedown", handler);
|
||||||
|
return () => document.removeEventListener("mousedown", handler);
|
||||||
|
}, [showProjectPicker]);
|
||||||
|
|
||||||
// Resize State
|
// Resize State
|
||||||
const [isResizing, setIsResizing] = useState(false);
|
const [isResizing, setIsResizing] = useState(false);
|
||||||
const [resizeHeight, setResizeHeight] = useState<number | null>(null);
|
const [resizeHeight, setResizeHeight] = useState<number | null>(null);
|
||||||
@ -218,6 +230,14 @@ export function GridTaskBlock({
|
|||||||
draggable={!editingTaskId && !isResizing}
|
draggable={!editingTaskId && !isResizing}
|
||||||
onDragStart={(e) => handleDragStart(e, task)}
|
onDragStart={(e) => handleDragStart(e, task)}
|
||||||
onDragEnd={handleDragEnd}
|
onDragEnd={handleDragEnd}
|
||||||
|
onMouseLeave={(e) => {
|
||||||
|
if (showProjectPicker) {
|
||||||
|
// Don't close if mouse moved into the project picker dropdown
|
||||||
|
const related = e.relatedTarget as HTMLElement | null;
|
||||||
|
if (related && projectPickerRef.current?.contains(related)) return;
|
||||||
|
setShowProjectPicker(false);
|
||||||
|
}
|
||||||
|
}}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
// Touch: toggle action toolbar on tap instead of toggling completion
|
// Touch: toggle action toolbar on tap instead of toggling completion
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user