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 useWindowDimensions from "@/hooks/useWindowDimensions"; import ToggleDarkMode from "./ToggleDarkMode"; import NewLinkModal from "./ModalContent/NewLinkModal"; import NewCollectionModal from "./ModalContent/NewCollectionModal"; import UploadFileModal from "./ModalContent/UploadFileModal"; import { dropdownTriggerer } from "@/lib/client/utils"; import MobileNavigation from "./MobileNavigation"; import ProfileDropdown from "./ProfileDropdown"; import { useTranslation } from "next-i18next"; export default function Navbar() { const { t } = useTranslation(); const router = useRouter(); const [sidebar, setSidebar] = useState(false); const { width } = useWindowDimensions(); useEffect(() => { setSidebar(false); document.body.style.overflow = "auto"; }, [width, router]); const toggleSidebar = () => { setSidebar(false); document.body.style.overflow = "auto"; }; const [newLinkModal, setNewLinkModal] = useState(false); const [newCollectionModal, setNewCollectionModal] = useState(false); const [uploadFileModal, setUploadFileModal] = useState(false); return (
{ setSidebar(true); document.body.style.overflow = "hidden"; }} className="text-neutral btn btn-square btn-sm btn-ghost lg:hidden sm:inline-flex" >
  • { (document?.activeElement as HTMLElement)?.blur(); setNewLinkModal(true); }} tabIndex={0} role="button" > {t("new_link")}
  • { (document?.activeElement as HTMLElement)?.blur(); setUploadFileModal(true); }} tabIndex={0} role="button" > {t("upload_file")}
  • { (document?.activeElement as HTMLElement)?.blur(); setNewCollectionModal(true); }} tabIndex={0} role="button" > {t("new_collection")}
{sidebar ? (
) : null} {newLinkModal ? ( setNewLinkModal(false)} /> ) : undefined} {newCollectionModal ? ( setNewCollectionModal(false)} /> ) : undefined} {uploadFileModal ? ( setUploadFileModal(false)} /> ) : undefined}
); }