import { Skeleton } from 'antd'; import React, { useRef } from 'react'; import { useConverseMessage } from 'tailchat-shared'; import { AlertErrorView } from '../AlertErrorView'; import { ChatInputBox } from './ChatInputBox'; import { ChatMessageList, ChatMessageListRef } from './ChatMessageList'; import { useMessageAck } from './useMessageAck'; const ChatBoxPlaceholder: React.FC = React.memo(() => { return (
); }); ChatBoxPlaceholder.displayName = 'ChatBoxPlaceholder'; type ChatBoxProps = | { converseId: string; isGroup: false; groupId?: string; } | { converseId: string; isGroup: true; groupId: string; }; export const ChatBox: React.FC = React.memo((props) => { const { converseId, isGroup } = props; const { messages, loading, error, handleSendMessage } = useConverseMessage({ converseId, isGroup, }); const chatMessageListRef = useRef(null); const { updateConverseAck } = useMessageAck(converseId, messages); if (loading) { return ; } if (error) { return ; } return (
{ // 发送消息后滚动到底部 handleSendMessage({ converseId: props.converseId, groupId: props.groupId, content: msg, }).then(() => { chatMessageListRef.current?.scrollToBottom(); }); }} />
); }); ChatBox.displayName = 'ChatBox';