2025-02-16 19:49:16 +05:30

133 lines
4.5 KiB
TypeScript

"use client";
import React, { useState } from 'react';
import { FaAngleDown } from "react-icons/fa";
import { ProductDropdown, SolutionsDropdown, ResourcesDropdown } from './dropdowns';
import MobileMenu from './MobileMenu'; // Import the MobileMenu component
const Navbar: React.FC = () => {
const [showProduct, setShowProduct] = useState<boolean>(false);
const [showSolutions, setShowSolutions] = useState<boolean>(false);
const [showResources, setShowResources] = useState<boolean>(false);
const [activeTab, setActiveTab] = useState<string>('');
const [mobileMenuOpen, setMobileMenuOpen] = useState<boolean>(false); // State for mobile menu
const toggleProduct = () => {
setShowProduct(!showProduct);
setShowSolutions(false);
setShowResources(false);
setActiveTab('product');
};
const toggleSolutions = () => {
setShowSolutions(!showSolutions);
setShowProduct(false);
setShowResources(false);
setActiveTab('solutions');
};
const toggleResources = () => {
setShowResources(!showResources);
setShowProduct(false);
setShowSolutions(false);
setActiveTab('resources');
};
const toggleMobileMenu = () => {
setMobileMenuOpen(!mobileMenuOpen);
};
return (
<div className='fixed top-0 w-full h-fit px-10 bg-[#080E12] bg-clip-padding backdrop-filter backdrop-blur-sm bg-opacity-100 z-50'>
<div className='w-full text-white flex items-center justify-between'>
<div className='flex items-center space-x-12 relative'>
<a href='/'>
<img
className='h-20'
src='https://res.cloudinary.com/dezd109fz/image/upload/v1737306774/Screenshot_2025-01-16_150353_fwgdmz.png'
alt="Logo"
/></a>
{/* Desktop Menu */}
<ul className='hidden md:flex space-x-12'>
{/* Product Menu */}
<li className={`flex items-center cursor-pointer relative ${activeTab === 'product' ? 'text-violet-500' : ''}`} onClick={toggleProduct}>
Product <FaAngleDown className='ml-2' />
{activeTab === 'product' && (
<span className="absolute left-0 -bottom-1 transition-all duration-300">
<span className="block h-[2px] w-full bg-violet-500"></span>
</span>
)}
</li>
{/* Solutions Menu */}
<li className={`flex items-center cursor-pointer relative ${activeTab === 'solutions' ? 'text-violet-500' : ''}`} onClick={toggleSolutions}>
Solutions <FaAngleDown className='ml-2' />
{activeTab === 'solutions' && (
<span className="absolute left-0 -bottom-1 transition-all duration-300">
<span className="block h-[2px] w-full bg-violet-500"></span>
</span>
)}
</li>
{/* Pricing */}
<li className='flex items-center cursor-pointer'>Pricing</li>
{/* Resources Menu */}
<li className={`flex items-center cursor-pointer relative ${activeTab === 'resources' ? 'text-violet-500' : ''}`} onClick={toggleResources}>
Resources <FaAngleDown className='ml-2' />
{activeTab === 'resources' && (
<span className="absolute left-0 -bottom-1 transition-all duration-300">
<span className="block h-[2px] w-full bg-violet-500"></span>
</span>
)}
</li>
</ul>
{/* Hamburger Icon for Mobile View */}
<div className="md:hidden flex items-center" onClick={toggleMobileMenu}>
</div>
</div>
{/* Action Buttons */}
<div className='hidden md:flex space-x-4'>
<button className='border px-4 py-2 rounded-md text-white border-white hover:bg-gray-800'>
Start Free Trial
</button>
<button className='border px-4 py-2 rounded-md bg-violet-700 hover:bg-violet-500 text-white'>
Take a Demo
</button>
</div>
</div>
{/* Dropdowns for Desktop View */}
<div className='border'>
{showProduct && (
<div>
<ProductDropdown />
</div>
)}
{showSolutions && (
<div>
<SolutionsDropdown />
</div>
)}
{showResources && (
<div>
<ResourcesDropdown />
</div>
)}
</div>
{/* Mobile Menu */}
{mobileMenuOpen && (
<MobileMenu show={mobileMenuOpen} toggle={toggleMobileMenu} />
)}
</div>
);
};
export default Navbar;