import MessageItem from '@/components/message-item'; import { MessageType } from '@/constants/chat'; import { Flex, Spin } from 'antd'; import { useCreateConversationBeforeUploadDocument, useGetFileIcon, useGetSendButtonDisabled, useSendButtonDisabled, useSendNextMessage, } from '../hooks'; import { buildMessageItemReference } from '../utils'; import MessageInput from '@/components/message-input'; import PdfDrawer from '@/components/pdf-drawer'; import { useClickDrawer } from '@/components/pdf-drawer/hooks'; import { useFetchNextConversation, useGetChatSearchParams, } from '@/hooks/chat-hooks'; import { useFetchUserInfo } from '@/hooks/user-setting-hooks'; import { memo } from 'react'; import styles from './index.less'; interface IProps { controller: AbortController; } const ChatContainer = ({ controller }: IProps) => { const { conversationId } = useGetChatSearchParams(); const { data: conversation } = useFetchNextConversation(); const { value, ref, loading, sendLoading, derivedMessages, handleInputChange, handlePressEnter, regenerateMessage, removeMessageById, } = useSendNextMessage(controller); const { visible, hideModal, documentId, selectedChunk, clickDocumentButton } = useClickDrawer(); const disabled = useGetSendButtonDisabled(); const sendDisabled = useSendButtonDisabled(value); useGetFileIcon(); const { data: userInfo } = useFetchUserInfo(); const { createConversationBeforeUploadDocument } = useCreateConversationBeforeUploadDocument(); return ( <>
{derivedMessages?.map((message, i) => { return ( ); })}
); }; export default memo(ChatContainer);