From cef5731028c1501d00a4739241042f32591a3561 Mon Sep 17 00:00:00 2001 From: ManishMadan2882 Date: Thu, 19 Jun 2025 02:19:29 +0530 Subject: [PATCH] (feat:nav) shut sidebar on click outside --- frontend/src/Navigation.tsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/frontend/src/Navigation.tsx b/frontend/src/Navigation.tsx index 300253b8..7e31fc0b 100644 --- a/frontend/src/Navigation.tsx +++ b/frontend/src/Navigation.tsx @@ -81,8 +81,27 @@ export default function Navigation({ navOpen, setNavOpen }: NavigationProps) { useState('INACTIVE'); const [recentAgents, setRecentAgents] = useState([]); - const navRef = useRef(null); + const navRef = useRef(null); + useEffect(() => { + function handleClickOutside(event: MouseEvent) { + if ( + navRef.current && + !navRef.current.contains(event.target as Node) && + (isMobile || isTablet) && + navOpen + ) { + setNavOpen(false); + } + } + //event listener only for mobile/tablet when nav is open + if ((isMobile || isTablet) && navOpen) { + document.addEventListener('mousedown', handleClickOutside); + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + } + }, [navOpen, isMobile, isTablet, setNavOpen]); async function fetchRecentAgents() { try { const response = await userService.getPinnedAgents(token);