UNPKG

@ant-design/x-sdk

Version:

placeholder for @ant-design/x-sdk

26 lines 1.07 kB
import { useEffect, useState, useSyncExternalStore } from 'react'; import { ConversationStore } from "./store"; export default function useXConversations(config) { const [store] = useState(() => { const store = new ConversationStore(config?.defaultConversations || [], config?.defaultActiveConversationKey || ''); return store; }); useEffect(() => { return () => { store.destroy(); }; }, []); const conversations = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot); const activeConversationKey = useSyncExternalStore(store.subscribe, store.getActiveConversationKey, store.getActiveConversationKey); return { conversations, activeConversationKey: activeConversationKey, setActiveConversationKey: store.setActiveConversationKey, addConversation: store.addConversation, removeConversation: store.removeConversation, setConversation: store.setConversation, getConversation: store.getConversation, setConversations: store.setConversations, getMessages: store.getMessages }; }