import React, { useMemo } from 'react'; import { Variable } from 'lucide-react'; import ReactMarkdown from 'react-markdown'; import { cn, extractUniqueVariables } from '~/utils'; import { CodeVariableGfm } from './Markdown'; import { Separator } from '~/components/ui'; import { useLocalize } from '~/hooks'; const specialVariables = { current_date: true, current_user: true, }; const specialVariableClasses = 'bg-yellow-500/25 text-yellow-600 dark:border-yellow-500/50 dark:bg-transparent dark:text-yellow-500/90'; const PromptVariables = ({ promptText, showInfo = true, }: { promptText: string; showInfo?: boolean; }) => { const localize = useLocalize(); const variables = useMemo(() => { return extractUniqueVariables(promptText || ''); }, [promptText]); return (

{localize('com_ui_variables')}

{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_info')}
{localize('com_ui_dropdown_variables')} {localize('com_ui_dropdown_variables_info')}
)}
); }; export default PromptVariables;