Files
digifi-FirstOffice/src/components/layouts/DashboardHeader.jsx
T
CHIEFSOFT\ameye 0f4844cb05 files
2025-04-04 13:15:42 -04:00

99 lines
5.0 KiB
React

import { LuSunDim } from "react-icons/lu";
import { IoMdSunny } from "react-icons/io";
import { generalLayoutContext } from "../../context/GeneralLayoutContext"
import UserAvatar from '../../assets/user_avatar.jpg'
import HandBurger from "./HandBurger"
import { Link } from "react-router-dom"
import RouteLinks from "../../RouteLinks"
import { useState } from "react";
import MainBtn from "../MainBtn";
import { TbLogout2 } from "react-icons/tb";
export default function DashboardHeader({showAsideDrawer, setShowAsideDrawer}) {
const {theme, handleTheme, handleDrawer, setLogoutModal} = generalLayoutContext()
const [activeMenu, setActiveMenu] = useState('')
const handleActiveMenu = (name) => {
if(activeMenu == name){
setActiveMenu('')
}else{
setActiveMenu(name)
}
}
return (
<>
{/* HEADER SECTION*/}
<header className='sticky top-0 z-[777] w-full px-3 md:px-10 bg-white shadow-sm text-brown dark:shadow-white dark:bg-black dark:text-white'>
<div className='w-full flex h-20 justify-between lg:justify-end items-center'>
<div className="lg:hidden">
<HandBurger asideDisplay={()=>setShowAsideDrawer(prev => !prev)} showAside={showAsideDrawer} barColor="bg-black-gray" />
</div>
{/* USER AVATAR */}
<div className="flex gap-4 justify-end">
{/* GO TO WALLET */}
<Link to={RouteLinks.walletPage} className="relative px-2 flex justify-center items-center gap-2 cursor-pointer">
<i className="fa-solid fa-wallet text-xl"></i>
</Link>
{/* MESSAGE */}
{/* <button onClick={()=>handleDrawer(drawerName.chat)} className="relative px-2 flex justify-center items-center gap-2 cursor-pointer">
<i className="fa-regular fa-envelope text-xl"></i>
<div className="absolute w-4 h-4 right-0 top-4 text-[8px] flex justify-center items-center rounded-full bg-emerald-500 animate-pulse">1</div>
</button> */}
{/* NOTIFICATION */}
{/* <button onClick={()=>{}} className="relative px-2 flex justify-center items-center gap-2 cursor-pointer">
<i className="fa-regular fa-bell text-xl"></i>
<div className="absolute w-4 h-4 right-0 top-4 text-[8px] flex justify-center items-center rounded-full bg-emerald-500 animate-pulse">1</div>
</button> */}
{/* THEME SELECTION */}
<div onClick={handleTheme} className='px-2 flex justify-center items-center gap-2 cursor-pointer' title='Switch Color Mode'>
{theme == 'dark' ?
<IoMdSunny className="text-sm md:text-xl font-bold" />
:
<LuSunDim className="text-sm md:text-xl font-bold" />
}
</div>
{/* USER AVATRA */}
{/* <div className='w-10 h-10 rounded shadow-round_black dark:shadow-round_white'>
<img src={UserAvatar} alt='user image' className='w-full h-full p-1 rounded-full' />
</div> */}
<div onClick={()=>handleActiveMenu('avatar')} className='relative cursor-pointer w-10 h-10 rounded shadow-round_black dark:shadow-round_white'>
<img src={UserAvatar} alt='user avatar' className='w-full h-full p-1 rounded-full' />
{activeMenu == 'avatar' &&
<div className="pop-modal absolute p-4 w-52 sm:w-96 bg-white dark:bg-black right-0 top-16 rounded shadow-round_black dark:shadow-round_white">
<div className="w-full h-full flex flex-col gap-4">
<div className="flex flex-col text-black dark:text-white text-base sm:text-lg">
<h1 className="font-semibold">Username</h1>
<p className="-mt-2">username@gmail.com</p>
</div>
<div className="bg-primary rounded w-full flex justify-center items-center gap-2">
<MainBtn
text='Logout'
className="w-full text-center text-white font-medium text-lg flex justify-center gap-2 items-center"
onClick={()=>setLogoutModal(true)}
>
<TbLogout2 className="text-base" />
</MainBtn>
</div>
</div>
</div>
}
</div>
</div>
</div>
</header>
</>
)
}