UNPKG

@droppii-org/chat-sdk

Version:

Droppii React Chat SDK

37 lines (36 loc) 1.91 kB
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;