UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

40 lines (31 loc) 1.34 kB
import { shallow } from 'zustand/shallow'; import { createWithEqualityFn } from 'zustand/traditional'; import { StateCreator } from 'zustand/vanilla'; import { createDevtools } from '../middleware/createDevtools'; import { AssistantAction, createAssistantSlice } from './slices/assistant/action'; import { MCPAction, createMCPSlice } from './slices/mcp'; import { ModelAction, createModelSlice } from './slices/model/action'; import { PluginAction, createPluginSlice } from './slices/plugin/action'; import { ProviderAction, createProviderSlice } from './slices/provider/action'; // =============== 聚合 createStoreFn ============ // export type DiscoverStore = MCPAction & AssistantAction & ProviderAction & ModelAction & PluginAction; const createStore: StateCreator<DiscoverStore, [['zustand/devtools', never]]> = ( ...parameters ) => ({ ...createMCPSlice(...parameters), ...createAssistantSlice(...parameters), ...createProviderSlice(...parameters), ...createModelSlice(...parameters), ...createPluginSlice(...parameters), }); // =============== 实装 useStore ============ // const devtools = createDevtools('discover'); export const useDiscoverStore = createWithEqualityFn<DiscoverStore>()( devtools(createStore), shallow, ); export const getDiscoverStoreState = () => useDiscoverStore.getState();