import { Menu, Transition } from '@headlessui/react'; import { Fragment, useState } from 'react'; import { useRecoilValue } from 'recoil'; import SearchBar from './SearchBar'; import Settings from './Settings'; import { Download } from 'lucide-react'; import NavLink from './NavLink'; import ExportModel from './ExportConversation/ExportModel'; import ClearConvos from './ClearConvos'; import Logout from './Logout'; import { useAuthContext } from '~/hooks/AuthContext'; import { cn } from '~/utils/'; import store from '~/store'; import { LinkIcon, DotsIcon, GearIcon, TrashIcon } from '~/components'; import { localize } from '~/localization/Translation'; export default function NavLinks({ clearSearch, isSearchEnabled }) { const [showExports, setShowExports] = useState(false); const [showClearConvos, setShowClearConvos] = useState(false); const [showSettings, setShowSettings] = useState(false); const { user } = useAuthContext(); const lang = useRecoilValue(store.lang); const conversation = useRecoilValue(store.conversation) || {}; const exportable = conversation?.conversationId && conversation?.conversationId !== 'new' && conversation?.conversationId !== 'search'; const clickHandler = () => { if (exportable) { setShowExports(true); } }; return ( <> {({ open }) => ( <>
{user?.name || localize(lang, 'com_nav_user')}
{isSearchEnabled && ( )} } text={localize(lang, 'com_nav_export_conversation')} clickHandler={clickHandler} />
} text={localize(lang, 'com_nav_clear_conversation')} clickHandler={() => setShowClearConvos(true)} /> } text={localize(lang, 'com_nav_help_faq')} clickHandler={() => window.open('https://docs.librechat.ai/', '_blank')} /> } text={localize(lang, 'com_nav_settings')} clickHandler={() => setShowSettings(true)} />
)}
{showExports && } {showClearConvos && } {showSettings && } ); }