import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { signOut } from "next-auth/react"; import { faPlus, faBars } from "@fortawesome/free-solid-svg-icons"; import { useEffect, useState } from "react"; import Dropdown from "@/components/Dropdown"; import ClickAwayHandler from "@/components/ClickAwayHandler"; import Sidebar from "@/components/Sidebar"; import { useRouter } from "next/router"; import Search from "@/components/Search"; import useAccountStore from "@/store/account"; import ProfilePhoto from "@/components/ProfilePhoto"; import useModalStore from "@/store/modals"; import { useTheme } from "next-themes"; import useWindowDimensions from "@/hooks/useWindowDimensions"; export default function Navbar() { const { setModal } = useModalStore(); const { account } = useAccountStore(); const [profileDropdown, setProfileDropdown] = useState(false); const router = useRouter(); const { theme, setTheme } = useTheme(); const handleToggle = () => { if (theme === "dark") { setTheme("light"); } else { setTheme("dark"); } }; const [sidebar, setSidebar] = useState(false); const { width } = useWindowDimensions(); useEffect(() => { setSidebar(false); }, [width]); useEffect(() => { setSidebar(false); }, [router]); const toggleSidebar = () => { setSidebar(!sidebar); }; return (
{ setModal({ modal: "LINK", state: true, method: "CREATE", }); }} className="inline-flex gap-1 relative sm:w-[7.2rem] items-center font-semibold select-none cursor-pointer p-[0.687rem] sm:p-2 sm:px-3 rounded-md sm:rounded-full hover:bg-sky-100 dark:hover:bg-sky-800 sm:dark:hover:bg-sky-600 text-sky-500 sm:text-white sm:bg-sky-700 sm:hover:bg-sky-600 duration-100 group" > New Link
setProfileDropdown(!profileDropdown)} id="profile-dropdown" >

{account.name}

{profileDropdown ? ( { handleToggle(); setProfileDropdown(!profileDropdown); }, }, { name: "Logout", onClick: () => { signOut(); setProfileDropdown(!profileDropdown); }, }, ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; if (target.id !== "profile-dropdown") setProfileDropdown(false); }} className="absolute top-11 right-0 z-20 w-36" /> ) : null} {sidebar ? (
) : null}
); }