diff --git a/components/Navbar/navbar.js b/components/Navbar/navbar.js index 59ec489c..148d1da7 100644 --- a/components/Navbar/navbar.js +++ b/components/Navbar/navbar.js @@ -1,6 +1,6 @@ import Link from 'next/link'; import Dropdown from '../illustration/dropdown'; -import { useState } from 'react'; +import { useState,useEffect } from 'react'; import links from '../../config/links.json'; import NavDrop from './navDrop'; import Hamburger from '../illustration/hamburger'; @@ -8,10 +8,19 @@ import { useMediaQuery } from 'react-responsive'; import Cancel from '../illustration/cancel'; + function Navbar() { const isTablet = useMediaQuery({ maxWidth: '1118px' }); const [drop, setDrop] = useState(false); const [show, setShow] = useState(null); + function handleClosing(event) { + if (show && !event.target.closest('.subMenu')) { + setShow(false); + } + } + useEffect(() => { + document.addEventListener('mousedown', handleClosing); + }, [show]); return (
@@ -43,16 +52,16 @@ function Navbar() { onClick={() => show === link.title ? setShow(null) : setShow(link.title) } - className='text-[#F0F4F5] ml-16 text-[15px] cursor-pointer relative flex flex-col' + className='text-[#F0F4F5] ml-16 text-[15px] group cursor-pointer relative flex flex-col' >
{link.subMenu ? ( -
+
{link.title}{' '} {link.subMenu && ( )}
@@ -61,7 +70,7 @@ function Navbar() { )}
{show && show === link.title && link.subMenu && ( -
+
{link.subMenu.map((subL) => (
@@ -83,4 +92,4 @@ function Navbar() { ); } -export default Navbar; +export default Navbar; \ No newline at end of file