import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { signOut } from "next-auth/react"; import { faPlus, faBars, faCaretDown } from "@fortawesome/free-solid-svg-icons"; import { useEffect, useState } from "react"; import ClickAwayHandler from "@/components/ClickAwayHandler"; import Sidebar from "@/components/Sidebar"; import { useRouter } from "next/router"; import SearchBar from "@/components/SearchBar"; import useAccountStore from "@/store/account"; import ProfilePhoto from "@/components/ProfilePhoto"; import useWindowDimensions from "@/hooks/useWindowDimensions"; import ToggleDarkMode from "./ToggleDarkMode"; import useLocalSettingsStore from "@/store/localSettings"; import NewLinkModal from "./Modals/NewLink"; import NewCollectionModal from "./Modals/NewCollectionModal"; import Link from "next/link"; export default function Navbar() { const { settings, updateSettings } = useLocalSettingsStore(); const { account } = useAccountStore(); const router = useRouter(); const [sidebar, setSidebar] = useState(false); const { width } = useWindowDimensions(); const handleToggle = () => { if (settings.theme === "dark") { updateSettings({ theme: "light" }); } else { updateSettings({ theme: "dark" }); } }; useEffect(() => { setSidebar(false); }, [width]); useEffect(() => { setSidebar(false); }, [router]); const toggleSidebar = () => { setSidebar(!sidebar); }; const [newLinkModalIsOpen, setNewLinkModalIsOpen] = useState(false); const closeNewLinkModal = () => setNewLinkModalIsOpen(false); const [newCollectionModalIsOpen, setNewCollectionModalIsOpen] = useState(false); const closeNewCollectionModal = () => setNewCollectionModalIsOpen(false); return (
  • { (document?.activeElement as HTMLElement)?.blur(); setNewLinkModalIsOpen(true); }} tabIndex={0} role="button" > New Link
  • { (document?.activeElement as HTMLElement)?.blur(); setNewCollectionModalIsOpen(true); }} tabIndex={0} role="button" > New Collection
  • (document?.activeElement as HTMLElement)?.blur()} tabIndex={0} role="button" > Settings
  • { (document?.activeElement as HTMLElement)?.blur(); handleToggle(); }} tabIndex={0} role="button" > Switch to {settings.theme === "light" ? "Dark" : "Light"}
  • { (document?.activeElement as HTMLElement)?.blur(); signOut(); }} tabIndex={0} role="button" > Logout
{sidebar ? (
) : null}
); }