Files
cunkebao_v3/Touchkebao/src/store/module/weChat/weChat.data.ts
超级老白兔 a53460b4cc feat(微信聊天): 实现消息撤回功能并优化右键菜单
添加消息撤回API接口及状态管理
在右键菜单中根据消息发送时间和归属显示撤回选项
优化消息记录组件与状态管理的交互逻辑
2025-09-18 17:58:33 +08:00

59 lines
2.0 KiB
TypeScript

import { ChatRecord, ContractData, weChatGroup } from "@/pages/pc/ckbox/data";
import {
CommentItem,
likeListItem,
FriendsCircleItem,
} from "@/pages/pc/ckbox/weChat/components/SidebarMenu/FriendsCicle/index.data";
// 微信聊天相关的类型定义
export interface WeChatState {
// 当前选中的联系人/群组
currentContract: ContractData | weChatGroup | null;
// CurrentContact 相关方法
clearCurrentContact: () => void;
setCurrentContact: (
contract: ContractData | weChatGroup,
isExist?: boolean,
) => void;
// 当前聊天用户的消息列表(只存储当前聊天用户的消息)
currentMessages: ChatRecord[];
// 添加消息
addMessage: (message: ChatRecord) => void;
// 替换消息
updateMessage: (messageId: number, updates: Partial<ChatRecord>) => void;
// 撤回消息
recallMessage: (messageId: number) => void;
// 消息加载状态
messagesLoading: boolean;
isLoadingData: boolean;
currentGroupMembers: any[];
showCheckbox: boolean;
updateShowCheckbox: (show: boolean) => void;
EnterModule: string;
// EnterModule 相关方法
updateEnterModule: (module: string) => void;
MomentCommon: FriendsCircleItem[];
// MomentCommon 相关方法
clearMomentCommon: () => void;
addMomentCommon: (moment: FriendsCircleItem[]) => void;
updateMomentCommon: (moments: FriendsCircleItem[]) => void;
MomentCommonLoading: boolean;
// MomentCommon 相关方法
updateMomentCommonLoading: (loading: boolean) => void;
updateLikeMoment: (snsId: string, likeList: likeListItem[]) => void;
updateComment: (snsId: string, commentList: CommentItem[]) => void;
loadChatMessages: (Init: boolean, To?: number) => Promise<void>;
SearchMessage: (params: {
From: number;
To: number;
keyword: string;
Count?: number;
}) => Promise<void>;
// 视频消息处理方法
setVideoLoading: (messageId: number, isLoading: boolean) => void;
setVideoUrl: (messageId: number, videoUrl: string) => void;
receivedMsg: (message: ChatRecord) => void;
}