refactor(message): replace MessageStateManager with zustand store
Some checks failed
Frontend CI / ota-android (push) Successful in 11m15s
Frontend CI / build-and-push-web (push) Successful in 29m13s
Frontend CI / build-android-apk (push) Has been cancelled

- 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:
lafay
2026-03-31 18:22:24 +08:00
parent 1bee7ea551
commit 94c11062f0
15 changed files with 1488 additions and 706 deletions

View File

@@ -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';