import { MessageType } from '@/constants/chat'; import { useSendAgentMessage } from './use-send-agent-message'; import { FileUploadProps } from '@/components/file-upload'; import { NextMessageInput } from '@/components/message-input/next'; import MessageItem from '@/components/next-message-item'; import PdfSheet from '@/components/pdf-drawer'; import { useClickDrawer } from '@/components/pdf-drawer/hooks'; import { useFetchAgent, useUploadCanvasFileWithProgress, } from '@/hooks/use-agent-request'; import { useFetchUserInfo } from '@/hooks/use-user-setting-request'; import { buildMessageUuidWithRole } from '@/utils/chat'; import { memo, useCallback } from 'react'; import { useParams } from 'umi'; import DebugContent from '../debug-content'; import { useAwaitCompentData } from '../hooks/use-chat-logic'; import { useIsTaskMode } from '../hooks/use-get-begin-query'; import { useGetFileIcon } from './use-get-file-icon'; function AgentChatBox() { const { data: canvasInfo, refetch } = useFetchAgent(); const { value, scrollRef, messageContainerRef, sendLoading, derivedMessages, handleInputChange, handlePressEnter, stopOutputMessage, sendFormMessage, findReferenceByMessageId, appendUploadResponseList, } = useSendAgentMessage({ refetch }); const { visible, hideModal, documentId, selectedChunk, clickDocumentButton } = useClickDrawer(); useGetFileIcon(); const { data: userInfo } = useFetchUserInfo(); const { id: canvasId } = useParams(); const { uploadCanvasFile, loading } = useUploadCanvasFileWithProgress(); const { buildInputList, handleOk, isWaitting } = useAwaitCompentData({ derivedMessages, sendFormMessage, canvasId: canvasId as string, }); const isTaskMode = useIsTaskMode(); const handleUploadFile: NonNullable = useCallback( async (files, options) => { const ret = await uploadCanvasFile({ files, options }); appendUploadResponseList(ret.data, files); }, [appendUploadResponseList, uploadCanvasFile], ); return ( <>
{/* */} {derivedMessages?.map((message, i) => { return ( {message.role === MessageType.Assistant && derivedMessages.length - 1 === i && ( )} {message.role === MessageType.Assistant && derivedMessages.length - 1 !== i && (
{message?.data?.tips}
{buildInputList(message)?.map((item) => item.value)}
)}
); })} {/*
*/}
{isTaskMode || ( )}
{visible && ( )} ); } export default memo(AgentChatBox);