import type { TPresetItemProps } from '~/common'; import type { TPreset } from 'librechat-data-provider'; import { DropdownMenuRadioItem, EditIcon, TrashIcon } from '~/components'; import { Icon } from '~/components/Endpoints'; export default function PresetItem({ preset = {} as TPreset, value, onChangePreset, onDeletePreset, }: TPresetItemProps) { const { endpoint } = preset; const icon = Icon({ size: 20, endpoint: preset?.endpoint, model: preset?.model, error: false, className: 'mr-2', isCreatedByUser: false, }); const getPresetTitle = () => { let _title = `${endpoint}`; const { chatGptLabel, modelLabel, model, jailbreak, toneStyle } = preset; if (endpoint === 'azureOpenAI' || endpoint === 'openAI') { if (model) { _title += `: ${model}`; } if (chatGptLabel) { _title += ` as ${chatGptLabel}`; } } else if (endpoint === 'google') { if (model) { _title += `: ${model}`; } if (modelLabel) { _title += ` as ${modelLabel}`; } } else if (endpoint === 'bingAI') { if (toneStyle) { _title += `: ${toneStyle}`; } if (jailbreak) { _title += ' as Sydney'; } } else if (endpoint === 'chatGPTBrowser') { if (model) { _title += `: ${model}`; } } else if (endpoint === 'gptPlugins') { if (model) { _title += `: ${model}`; } } else if (endpoint === null) { null; } else { null; } return _title; }; // regular model return (
{icon} {preset?.title} ({getPresetTitle()})
); }