refactor(message): replace SubscriptionManager with Zustand selectors
Remove custom SubscriptionManager class and adopt Zustand's built-in selector mechanism for reactive state updates. This simplifies the architecture by eliminating manual subscription management and relying on Zustand's automatic dependency tracking for component re-renders. Key changes: - Remove SubscriptionManager class from store.ts - Replace all notifySubscribers calls with direct store updates - Update hooks to use Zustand selectors with useShallow for complex data - Remove subscribe/unsubscribe patterns from MessageManager - Simplify EmbeddedChat to use selector instead of local state - Rename requestConversationListRefresh to refreshConversations
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
* - 直接使用 zustand store 进行状态管理
|
||||
* - 服务层移至 services/ 目录
|
||||
* - 新增 hooks.ts 封装常用逻辑
|
||||
* - 移除了 SubscriptionManager,改用 Zustand selector 进行响应式订阅
|
||||
*/
|
||||
|
||||
// ==================== 主管理器 ====================
|
||||
@@ -14,11 +15,8 @@ export { messageManager, MessageManager } from './MessageManager';
|
||||
// ==================== 状态管理 ====================
|
||||
export {
|
||||
useMessageStore,
|
||||
subscriptionManager,
|
||||
normalizeConversationId,
|
||||
mergeMessagesById,
|
||||
notifySubscribers,
|
||||
subscribeToMessages,
|
||||
} from './store';
|
||||
export type { MessageState, MessageActions, MessageStore } from './store';
|
||||
|
||||
@@ -86,7 +84,6 @@ export {
|
||||
useConversation,
|
||||
useCreateConversation,
|
||||
useUpdateConversation,
|
||||
useActiveConversation,
|
||||
|
||||
// 消息相关
|
||||
useMessages,
|
||||
@@ -103,6 +100,8 @@ export {
|
||||
|
||||
// 通用
|
||||
useMessageManager,
|
||||
useConnectionStatus,
|
||||
useIsInitialized,
|
||||
} from './hooks';
|
||||
|
||||
// ==================== 默认导出 ====================
|
||||
|
||||
Reference in New Issue
Block a user