@ant-design/x-sdk
Version:
placeholder for @ant-design/x-sdk
32 lines (31 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useXConversations;
var _react = require("react");
var _store = require("./store");
function useXConversations(config) {
const [store] = (0, _react.useState)(() => {
const store = new _store.ConversationStore(config?.defaultConversations || [], config?.defaultActiveConversationKey || '');
return store;
});
(0, _react.useEffect)(() => {
return () => {
store.destroy();
};
}, []);
const conversations = (0, _react.useSyncExternalStore)(store.subscribe, store.getSnapshot, store.getSnapshot);
const activeConversationKey = (0, _react.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
};
}