import React, { useMemo } from 'react'; import { Flex, useTheme, Box } from '@chakra-ui/react'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import MyIcon from '@fastgpt/web/components/common/Icon'; import Avatar from '@/components/Avatar'; import ToolMenu from './ToolMenu'; import type { ChatItemType } from '@fastgpt/global/core/chat/type'; import { useRouter } from 'next/router'; import { useTranslation } from 'next-i18next'; import { getChatTitleFromChatMessage } from '@fastgpt/global/core/chat/utils'; import FillTag from '@fastgpt/web/components/common/Tag/Fill'; const ChatHeader = ({ history, appName, appAvatar, chatModels, appId, showHistory, onOpenSlider }: { history: ChatItemType[]; appName: string; appAvatar: string; chatModels?: string[]; appId?: string; showHistory?: boolean; onOpenSlider: () => void; }) => { const router = useRouter(); const theme = useTheme(); const { t } = useTranslation(); const { isPc } = useSystemStore(); const title = useMemo( () => getChatTitleFromChatMessage(history[history.length - 2], appName || t('core.chat.New Chat')), [appName, history, t] ); return ( {isPc ? ( <> {title} {history.length === 0 ? t('core.chat.New Chat') : t('core.chat.History Amount', { amount: history.length })} {!!chatModels && chatModels.length > 0 && ( {chatModels.join(',')} )} ) : ( <> {showHistory && ( )} { appId && router.push(`/app/detail?appId=${appId}`); }} > {appName} )} {/* control */} ); }; export default ChatHeader;