import React 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 '@fastgpt/web/components/common/Avatar'; import ToolMenu from './ToolMenu'; import type { ChatItemType } from '@fastgpt/global/core/chat/type'; import { useTranslation } from 'next-i18next'; import MyTag from '@fastgpt/web/components/common/Tag/index'; import { useContextSelector } from 'use-context-selector'; import { ChatContext } from '@/web/core/chat/context/chatContext'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { InitChatResponse } from '@/global/core/chat/api'; import { AppTypeEnum } from '@fastgpt/global/core/app/constants'; import { useSystem } from '@fastgpt/web/hooks/useSystem'; const ChatHeader = ({ chatData, history, showHistory, onRoute2AppDetail }: { chatData: InitChatResponse; history: ChatItemType[]; showHistory?: boolean; onRoute2AppDetail?: () => void; }) => { const theme = useTheme(); const { t } = useTranslation(); const { isPc } = useSystem(); const chatModels = chatData.app.chatModels; const isPlugin = chatData.app.type === AppTypeEnum.plugin; const onOpenSlider = useContextSelector(ChatContext, (v) => v.onOpenSlider); return isPc && isPlugin ? null : ( {isPc ? ( <> {chatData.title} {history.length === 0 ? t('common:core.chat.New Chat') : t('core.chat.History Amount', { amount: history.length })} {!!chatModels && chatModels.length > 0 && ( {chatModels.join(',')} )} ) : ( <> {showHistory && ( )} {chatData.app.name} )} {/* control */} {!isPlugin && } ); }; export default ChatHeader;