refactor(message): replace MessageStateManager with zustand store
- Remove MessageStateManager wrapper layer in favor of direct zustand store - Move service modules to services/ subdirectory (ConversationOperations, MessageDeduplication, MessageSendService, MessageSyncService, ReadReceiptManager, UserCacheService, WSMessageHandler) - Add new zustand-based store with subscriptionManager for event handling - Introduce React hooks for message state (useConversations, useMessages, useUnreadCount, etc.) - Update exports in index.ts to reflect new module structure - Deprecate messageManager.ts entry point in favor of message/index.ts - Maintain backward compatibility with existing MessageManager API
This commit is contained in:
@@ -1,12 +1,27 @@
|
||||
/**
|
||||
* 消息模块统一导出
|
||||
*
|
||||
* 提供向后兼容的 API 导出
|
||||
* 重构说明:
|
||||
* - 移除了 MessageStateManager 包装层
|
||||
* - 直接使用 zustand store 进行状态管理
|
||||
* - 服务层移至 services/ 目录
|
||||
* - 新增 hooks.ts 封装常用逻辑
|
||||
*/
|
||||
|
||||
// ==================== 主管理器 ====================
|
||||
export { messageManager, MessageManager } from './MessageManager';
|
||||
|
||||
// ==================== 状态管理 ====================
|
||||
export {
|
||||
useMessageStore,
|
||||
subscriptionManager,
|
||||
normalizeConversationId,
|
||||
mergeMessagesById,
|
||||
notifySubscribers,
|
||||
subscribeToMessages,
|
||||
} from './store';
|
||||
export type { MessageState, MessageActions, MessageStore } from './store';
|
||||
|
||||
// ==================== 类型导出 ====================
|
||||
// 从 types.ts 导出所有类型
|
||||
export type {
|
||||
@@ -17,6 +32,7 @@ export type {
|
||||
ReadStateRecord,
|
||||
MessageManagerConversationListDeps,
|
||||
HandleNewMessageOptions,
|
||||
// 服务接口类型(保留向后兼容,但服务层已不再使用)
|
||||
IMessageStateManager,
|
||||
IMessageDeduplication,
|
||||
IUserCacheService,
|
||||
@@ -37,30 +53,57 @@ export {
|
||||
MIN_RECONNECT_SYNC_INTERVAL,
|
||||
} from './constants';
|
||||
|
||||
// ==================== 子模块导出(可选使用)====================
|
||||
// 状态管理器
|
||||
export { MessageStateManager, messageStateManager } from './MessageStateManager';
|
||||
// ==================== 服务导出 ====================
|
||||
export {
|
||||
// 消息去重服务
|
||||
MessageDeduplication,
|
||||
messageDeduplication,
|
||||
|
||||
// 用户缓存服务
|
||||
UserCacheService,
|
||||
userCacheService,
|
||||
|
||||
// 已读回执管理器
|
||||
ReadReceiptManager,
|
||||
|
||||
// 会话操作服务
|
||||
ConversationOperations,
|
||||
|
||||
// 消息发送服务
|
||||
MessageSendService,
|
||||
|
||||
// 消息同步服务
|
||||
MessageSyncService,
|
||||
|
||||
// WebSocket 消息处理器
|
||||
WSMessageHandler,
|
||||
} from './services';
|
||||
|
||||
// 消息去重服务
|
||||
export { MessageDeduplication, messageDeduplication } from './MessageDeduplication';
|
||||
|
||||
// 用户缓存服务
|
||||
export { UserCacheService, userCacheService } from './UserCacheService';
|
||||
|
||||
// 已读回执管理器
|
||||
export { ReadReceiptManager } from './ReadReceiptManager';
|
||||
|
||||
// 会话操作服务
|
||||
export { ConversationOperations } from './ConversationOperations';
|
||||
|
||||
// 消息发送服务
|
||||
export { MessageSendService } from './MessageSendService';
|
||||
|
||||
// 消息同步服务
|
||||
export { MessageSyncService } from './MessageSyncService';
|
||||
|
||||
// WebSocket 消息处理器
|
||||
export { WSMessageHandler } from './WSMessageHandler';
|
||||
// ==================== Hooks 导出 ====================
|
||||
export {
|
||||
// 会话相关
|
||||
useConversations,
|
||||
useConversation,
|
||||
useCreateConversation,
|
||||
useUpdateConversation,
|
||||
useActiveConversation,
|
||||
|
||||
// 消息相关
|
||||
useMessages,
|
||||
useSendMessage,
|
||||
useMarkAsRead,
|
||||
|
||||
// 未读数相关
|
||||
useUnreadCount,
|
||||
useSystemUnreadCount,
|
||||
|
||||
// 群聊相关
|
||||
useGroupTyping,
|
||||
useGroupMuted,
|
||||
|
||||
// 通用
|
||||
useMessageManager,
|
||||
} from './hooks';
|
||||
|
||||
// ==================== 默认导出 ====================
|
||||
export { default } from './MessageManager';
|
||||
|
||||
Reference in New Issue
Block a user