import { useMemo, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import { SystemRoles } from 'librechat-data-provider'; import { useRecoilValue, useSetRecoilState } from 'recoil'; import { ArrowLeft, MessageSquareQuote } from 'lucide-react'; import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator, // BreadcrumbEllipsis, // DropdownMenu, // DropdownMenuItem, // DropdownMenuContent, // DropdownMenuTrigger, } from '~/components/ui'; import { useLocalize, useCustomLink, useAuthContext } from '~/hooks'; import AdvancedSwitch from '~/components/Prompts/AdvancedSwitch'; // import { RightPanel } from '../../components/Prompts/RightPanel'; import AdminSettings from '~/components/Prompts/AdminSettings'; import { useDashboardContext } from '~/Providers'; // import { PromptsEditorMode } from '~/common'; import store from '~/store'; const promptsPathPattern = /prompts\/(?!new(?:\/|$)).*$/; const getConversationId = (prevLocationPath: string) => { if (!prevLocationPath || prevLocationPath.includes('/d/')) { return 'new'; } const lastPathnameParts = prevLocationPath.split('/'); return lastPathnameParts[lastPathnameParts.length - 1]; }; export default function DashBreadcrumb() { const location = useLocation(); const localize = useLocalize(); const { user } = useAuthContext(); const { prevLocationPath } = useDashboardContext(); const lastConversationId = useMemo(() => getConversationId(prevLocationPath), [prevLocationPath]); const setPromptsName = useSetRecoilState(store.promptsName); const setPromptsCategory = useSetRecoilState(store.promptsCategory); const editorMode = useRecoilValue(store.promptsEditorMode); const clickCallback = useCallback(() => { setPromptsName(''); setPromptsCategory(''); }, [setPromptsName, setPromptsCategory]); const chatLinkHandler = useCustomLink('/c/' + lastConversationId, clickCallback); const promptsLinkHandler = useCustomLink('/d/prompts'); const isPromptsPath = useMemo( () => promptsPathPattern.test(location.pathname), [location.pathname], ); return (
{/* {localize('com_ui_dashboard')} Toggle menu Documentation Themes GitHub */}
{isPromptsPath && } {user?.role === SystemRoles.ADMIN && }
); }