From a381b5d30bf43a46c343ee6148f18edd3c0c579a Mon Sep 17 00:00:00 2001 From: Malini Date: Sun, 9 Nov 2025 21:23:36 +0530 Subject: [PATCH] bug fixed --- .../src/components/admin/AdminHeader.jsx | 37 ++++- .../survey/ProductData/ProductData.jsx | 151 +++++++++++++++++- .../src/pages/Admin/AdminDashboard.jsx | 16 +- .../src/pages/Admin/Validations.jsx | 2 +- 4 files changed, 188 insertions(+), 18 deletions(-) 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 = () => { > Notifications */} -
+
-
+