top

🧩 Syntax:
import {useEffect, useState} from "react";
import {useCookies} from "react-cookie";
import cookiesKey from "../../utils/constant/cookies";
import {useNavigate} from "react-router-dom";
import {useDispatch} from "react-redux";
import {clearAuthInfo} from "../../app/slice/auth/state";

export const TopBarDropdown = () => {
    const [hover, setHover] = useState(false);

    const [cookies, setCookie, removeCookie] = useCookies();

    const navigate = useNavigate();

    const dispatch = useDispatch();

    const handleRemove = () => {
        removeCookie(cookiesKey.AuthToken)
        dispatch(clearAuthInfo())

    }


    return <div className="relative inline-block text-left" onMouseEnter={() => {
        setHover(true)
    }} onMouseLeave={() => setHover(false)}>
        <div>
            <button type="button"
                    className="inline-flex w-full justify-center gap-x-1.5 rounded-md bg-white px-3 py-2 text-sm font-semibold text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50"
                    id="menu-button" aria-expanded="true" aria-haspopup="true">
                Profile
                <svg
                    className={`-mr-1 h-5 w-5 text-gray-400 ${hover ? "rotate-180 transition ease-in-out delay-50" : ""}`}
                    viewBox="0 0 20 20" fill="currentColor"
                    aria-hidden="true">
                    <path fillRule="evenodd"
                          d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z"
                          clipRule="evenodd"/>
                </svg>
            </button>
        </div>
        {
            hover ? <div
                className="absolute right-0 z-10 "
                role="menu" aria-orientation="vertical" aria-labelledby="menu-button" tabIndex="-1">
                <div
                    className="mt-2 w-56 origin-top-right rounded-md bg-white shadow-md ring-1 ring-black ring-opacity-5 focus:outline-none"
                    role="none">

                    <a href="#" className="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabIndex="-1"
                       id="menu-item-0">Account settings</a>
                    <a href="#" className="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabIndex="-1"
                       id="menu-item-1">Support</a>
                    <a href="#" onClick={(e) => {
                        e.preventDefault();
                        handleRemove()
                    }} className="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabIndex="-1"
                       id="menu-item-2">Sign out</a>
                </div>
            </div> : ""
        }


    </div>
}