import { EModelEndpoint } from 'librechat-data-provider'; import type { ReactNode } from 'react'; import { MessagesSquared, GPTIcon } from '~/components/svg'; import { useChatContext } from '~/Providers'; import { Button } from '~/components/ui'; import { cn } from '~/utils/'; type TPopoverButton = { label: string; buttonClass: string; handler: () => void; icon: ReactNode; }; export default function PopoverButtons({ endpoint, buttonClass, iconClass = '', }: { endpoint: EModelEndpoint; buttonClass?: string; iconClass?: string; }) { const { optionSettings, setOptionSettings, showAgentSettings, setShowAgentSettings } = useChatContext(); const { showExamples, isCodeChat } = optionSettings; const triggerExamples = () => setOptionSettings((prev) => ({ ...prev, showExamples: !prev.showExamples })); const buttons: { [key: string]: TPopoverButton[] } = { [EModelEndpoint.google]: [ { label: (showExamples ? 'Hide' : 'Show') + ' Examples', buttonClass: isCodeChat ? 'disabled' : '', handler: triggerExamples, icon: , }, ], [EModelEndpoint.gptPlugins]: [ { label: `Show ${showAgentSettings ? 'Completion' : 'Agent'} Settings`, buttonClass: '', handler: () => setShowAgentSettings((prev) => !prev), icon: , }, ], }; const endpointButtons = buttons[endpoint]; if (!endpointButtons) { return null; } return (
{endpointButtons.map((button, index) => ( ))}
); }