diff --git a/ipi-survey-platform/src/components/admin/AdminHeader.jsx b/ipi-survey-platform/src/components/admin/AdminHeader.jsx
index eda1473..d0986b3 100644
--- a/ipi-survey-platform/src/components/admin/AdminHeader.jsx
+++ b/ipi-survey-platform/src/components/admin/AdminHeader.jsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useRef, useEffect } from 'react';
import { NavLink, useNavigate } from 'react-router-dom';
const logoSrc = '/assets/images/FCSCLogo.svg';
@@ -40,6 +40,35 @@ const AdminHeader = () => {
const [userName, setUserName] = React.useState('User');
const [userEmail, setUserEmail] = React.useState('user@example.com');
const navigate = useNavigate();
+ const profileRef = useRef(null);
+ const mobileMenuRef = useRef(null);
+ const profileButtonRef = useRef(null);
+ const mobileMenuButtonRef = useRef(null);
+
+ // Handle click outside for profile dropdown and mobile menu
+ useEffect(() => {
+ const handleClickOutside = (event) => {
+ // Close profile dropdown if clicked outside
+ if (profileOpen && profileRef.current && !profileRef.current.contains(event.target) &&
+ profileButtonRef.current && !profileButtonRef.current.contains(event.target)) {
+ setProfileOpen(false);
+ }
+
+ // Close mobile menu if clicked outside
+ if (open && mobileMenuRef.current && !mobileMenuRef.current.contains(event.target) &&
+ mobileMenuButtonRef.current && !mobileMenuButtonRef.current.contains(event.target)) {
+ setOpen(false);
+ }
+ };
+
+ // Add event listener when the component mounts
+ document.addEventListener('mousedown', handleClickOutside);
+
+ // Clean up the event listener when the component unmounts
+ return () => {
+ document.removeEventListener('mousedown', handleClickOutside);
+ };
+ }, [open, profileOpen]);
React.useEffect(() => {
try {
@@ -90,8 +119,9 @@ const AdminHeader = () => {
>
*/}
-
+
-
+