import { EModelEndpoint } from 'librechat-data-provider'; import { useGetEndpointsQuery, useGetStartupConfig } from 'librechat-data-provider/react-query'; import type { ReactNode } from 'react'; import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '~/components/ui'; import { useChatContext, useAssistantsMapContext } from '~/Providers'; import { icons } from './Menus/Endpoints/Icons'; import { BirthdayIcon } from '~/components/svg'; import { getEndpointField } from '~/utils'; import { useLocalize } from '~/hooks'; export default function Landing({ Header }: { Header?: ReactNode }) { const { conversation } = useChatContext(); const { data: endpointsConfig } = useGetEndpointsQuery(); const { data: startupConfig } = useGetStartupConfig(); const assistantMap = useAssistantsMapContext(); const localize = useLocalize(); let { endpoint } = conversation ?? {}; const { assistant_id = null } = conversation ?? {}; if ( endpoint === EModelEndpoint.chatGPTBrowser || endpoint === EModelEndpoint.azureOpenAI || endpoint === EModelEndpoint.gptPlugins ) { endpoint = EModelEndpoint.openAI; } const endpointType = getEndpointField(endpointsConfig, endpoint, 'type'); const iconURL = getEndpointField(endpointsConfig, endpoint, 'iconURL'); const iconKey = endpointType ? 'unknown' : endpoint ?? 'unknown'; const Icon = icons[iconKey]; const assistant = endpoint === EModelEndpoint.assistants && assistantMap?.[assistant_id ?? '']; const assistantName = (assistant && assistant?.name) || ''; const assistantDesc = (assistant && assistant?.description) || ''; const avatar = (assistant && (assistant?.metadata?.avatar as string)) || ''; let className = 'shadow-stroke relative flex h-full items-center justify-center rounded-full bg-white text-black'; if (assistantName && avatar) { className = 'shadow-stroke overflow-hidden rounded-full'; } return (
{Header && Header}
{endpoint && Icon && Icon({ size: 41, context: 'landing', className: 'h-2/3 w-2/3', endpoint: endpoint, iconURL: iconURL, assistantName, avatar, })}
{(startupConfig?.showBirthdayIcon ?? false) && ( )} {localize('com_ui_happy_birthday')}
{assistantName ? (
{assistantName}
{assistantDesc ? assistantDesc : localize('com_nav_welcome_message')}
{/*
By Daniel Avila
*/}
) : (
{localize('com_nav_welcome_message')}
)}
); }