import { useState } from 'react'; import { useRecoilValue } from 'recoil'; import type { TPreset } from 'librechat-data-provider'; import { EModelEndpoint } from 'librechat-data-provider'; import EndpointOptionsDialog from '../Endpoints/EndpointOptionsDialog'; import { Plugin } from '~/components/svg'; import { alternateName } from '~/common'; import { useLocalize } from '~/hooks'; import { cn } from '~/utils'; import store from '~/store'; const MessageHeader = ({ isSearchView = false }) => { const [saveAsDialogShow, setSaveAsDialogShow] = useState(false); const conversation = useRecoilValue(store.conversation); const searchQuery = useRecoilValue(store.searchQuery); const localize = useLocalize(); if (!conversation) { return null; } const { endpoint, model } = conversation; if (!endpoint) { return null; } const isNotClickable = endpoint === EModelEndpoint.chatGPTBrowser; const plugins = ( <> {/* beta */} {localize('com_ui_model')}: {model} ); const getConversationTitle = () => { if (isSearchView) { return `Search: ${searchQuery}`; } else { let _title = `${alternateName[endpoint] ?? endpoint}`; if (endpoint === EModelEndpoint.azureOpenAI || endpoint === EModelEndpoint.openAI) { const { chatGptLabel } = conversation; if (model) { _title += `: ${model}`; } if (chatGptLabel) { _title += ` as ${chatGptLabel}`; } } else if (endpoint === EModelEndpoint.google) { _title = 'PaLM'; const { modelLabel, model } = conversation; if (model) { _title += `: ${model}`; } if (modelLabel) { _title += ` as ${modelLabel}`; } } else if (endpoint === EModelEndpoint.bingAI) { const { jailbreak, toneStyle } = conversation; if (toneStyle) { _title += `: ${toneStyle}`; } if (jailbreak) { _title += ' as Sydney'; } } else if (endpoint === EModelEndpoint.chatGPTBrowser) { if (model) { _title += `: ${model}`; } } else if (endpoint === EModelEndpoint.gptPlugins) { return plugins; } else if (endpoint === EModelEndpoint.anthropic) { _title = 'Claude'; } else if (endpoint === null) { null; } else { null; } return _title; } }; return ( <>
(isNotClickable ? null : setSaveAsDialogShow(true))} >
{getConversationTitle()}
); }; export default MessageHeader;