import type { ReactNode } from 'react'; import { useGetEndpointsQuery, useGetStartupConfig } from 'librechat-data-provider/react-query'; import { EModelEndpoint } from 'librechat-data-provider'; import { icons } from './Menus/Endpoints/Icons'; import { useChatContext } from '~/Providers'; import { getEndpointField } from '~/utils'; import { useLocalize } from '~/hooks'; import { BirthdayIcon } from '~/components/svg'; import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '~/components/ui/'; export default function Landing({ Header }: { Header?: ReactNode }) { const { conversation } = useChatContext(); const { data: endpointsConfig } = useGetEndpointsQuery(); const { data: startupConfig } = useGetStartupConfig(); const localize = useLocalize(); let { endpoint } = conversation ?? {}; if ( endpoint === EModelEndpoint.assistant || 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]; return (
{Header && Header}
{endpoint && Icon && Icon({ size: 41, context: 'landing', className: 'h-2/3 w-2/3', endpoint: endpoint, iconURL: iconURL, })} {(startupConfig?.showBirthdayIcon ?? false) && ( )} {localize('com_ui_happy_birthday')}
{localize('com_nav_welcome_message')}
); }