import React, { useMemo } from 'react'; import { Variable } from 'lucide-react'; import ReactMarkdown from 'react-markdown'; import { Separator } from '@librechat/client'; import { specialVariables } from 'librechat-data-provider'; import { cn, extractUniqueVariables } from '~/utils'; import { CodeVariableGfm } from './Markdown'; import { useLocalize } from '~/hooks'; const specialVariableClasses = 'bg-amber-100 text-yellow-800 border-yellow-600 dark:border-yellow-500/50 dark:bg-transparent dark:text-yellow-500/90'; const components: { [nodeType: string]: React.ElementType; } = { code: CodeVariableGfm }; const PromptVariables = ({ promptText, showInfo = true, }: { promptText: string; showInfo?: boolean; }) => { const localize = useLocalize(); const variables = useMemo(() => { return extractUniqueVariables(promptText || ''); }, [promptText]); return (

{variables.length ? (
{variables.map((variable, index) => ( {specialVariables[variable.toLowerCase()] != null ? variable.toLowerCase() : variable} ))}
) : (
{localize('com_ui_variables_info')}
)} {showInfo && (
{localize('com_ui_special_variables')} {localize('com_ui_special_variables_more_info')}
{localize('com_ui_dropdown_variables')} {localize('com_ui_dropdown_variables_info')}
)}
); }; export default PromptVariables;