@droppii-org/chat-sdk
Version:
Droppii React Chat SDK
37 lines (36 loc) • 1.91 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import ChatBubble from "../../components/chatBubble/ChatBubble";
import { useChatContext } from "../../context/ChatContext";
import { ConnectStatus, SyncStatus } from "../../types/chat";
import { useEffect } from "react";
import useConversationStore from "../../store/conversation";
import { Spin } from "antd";
import { DChatSDK } from "../../constants/sdk";
const DChatBubble = (props) => {
const { conversationID, className } = props;
const { connectStatus, syncStatus } = useChatContext();
if (connectStatus !== ConnectStatus.Connected)
return null;
const conversationList = useConversationStore((state) => state.conversationList);
const setSelectedConversationId = useConversationStore((state) => state.setSelectedConversationId);
const setConversationData = useConversationStore((state) => state.setConversationData);
const updateConversationList = useConversationStore((state) => state.updateConversationList);
useEffect(() => {
const conversation = conversationList === null || conversationList === void 0 ? void 0 : conversationList.find((item) => item.conversationID === conversationID);
if (conversation) {
setSelectedConversationId(conversation.conversationID);
setConversationData(conversation);
}
else {
DChatSDK.getMultipleConversation([conversationID]).then((res) => {
if (res.data.length > 0) {
setSelectedConversationId(conversationID);
setConversationData(res.data[0]);
updateConversationList(res.data, "filter");
}
});
}
}, [conversationList, conversationID]);
return (_jsx(Spin, { spinning: syncStatus === SyncStatus.Loading, children: _jsx(ChatBubble, { className: className }) }));
};
export default DChatBubble;