fix: sidebar menu closes on mouseLeave before user can click option
- Remove menu close from onMouseLeave (was closing before user reaches dropdown) - Add global document click listener to close menu when clicking outside Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
7ec2127b85
commit
e766564f34
@@ -67,6 +67,13 @@ export function GeminiSidebar({
|
|||||||
}
|
}
|
||||||
}, [renamingId]);
|
}, [renamingId]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!menuOpenId) return;
|
||||||
|
const close = () => setMenuOpenId(null);
|
||||||
|
document.addEventListener("click", close);
|
||||||
|
return () => document.removeEventListener("click", close);
|
||||||
|
}, [menuOpenId]);
|
||||||
|
|
||||||
const handleMenuClick = useCallback((e: React.MouseEvent, convId: string) => {
|
const handleMenuClick = useCallback((e: React.MouseEvent, convId: string) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
setMenuOpenId((prev) => (prev === convId ? null : convId));
|
setMenuOpenId((prev) => (prev === convId ? null : convId));
|
||||||
@@ -150,7 +157,7 @@ export function GeminiSidebar({
|
|||||||
<button
|
<button
|
||||||
onClick={() => onSelectConversation(conv.id)}
|
onClick={() => onSelectConversation(conv.id)}
|
||||||
onMouseEnter={() => setHoveredId(conv.id)}
|
onMouseEnter={() => setHoveredId(conv.id)}
|
||||||
onMouseLeave={() => { setHoveredId(null); if (menuOpenId === conv.id) setMenuOpenId(null); }}
|
onMouseLeave={() => setHoveredId(null)}
|
||||||
className={cn(
|
className={cn(
|
||||||
"w-full flex items-center justify-between px-3 py-2.5 rounded-xl text-sm text-left transition-colors duration-150 cursor-pointer group",
|
"w-full flex items-center justify-between px-3 py-2.5 rounded-xl text-sm text-left transition-colors duration-150 cursor-pointer group",
|
||||||
activeConversationId === conv.id
|
activeConversationId === conv.id
|
||||||
|
|||||||
Reference in New Issue
Block a user