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';