63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
export interface Message {
|
|
id: number;
|
|
wechatId: string;
|
|
nickname: string;
|
|
alias: string;
|
|
avatar: string;
|
|
region: string;
|
|
signature: string;
|
|
bindQQ: string;
|
|
bindEmail: string;
|
|
bindMobile: string;
|
|
createTime: string;
|
|
currentDeviceId: number;
|
|
isDeleted: boolean;
|
|
deleteTime: string;
|
|
groupId: number;
|
|
memo: string;
|
|
wechatVersion: string;
|
|
labels: string[];
|
|
lastUpdateTime: string;
|
|
isOnline?: boolean;
|
|
momentsMax: number;
|
|
momentsNum: number;
|
|
[key: string]: any;
|
|
}
|
|
|
|
//Store State - 会话列表状态管理(不存储数据,只管理状态)
|
|
export interface MessageState {
|
|
//加载状态
|
|
loading: boolean;
|
|
//后台同步状态
|
|
refreshing: boolean;
|
|
//刷新触发器(用于通知组件重新查询数据库)
|
|
refreshTrigger: number;
|
|
//最后刷新时间
|
|
lastRefreshTime: string | null;
|
|
//是否已经加载过一次(避免重复请求)
|
|
hasLoadedOnce: boolean;
|
|
|
|
//设置加载状态
|
|
setLoading: (loading: boolean) => void;
|
|
//设置同步状态
|
|
setRefreshing: (refreshing: boolean) => void;
|
|
//触发刷新(通知组件重新查询)
|
|
triggerRefresh: () => void;
|
|
//设置已加载标识
|
|
setHasLoadedOnce: (loaded: boolean) => void;
|
|
//重置加载状态(用于登出或切换用户)
|
|
resetLoadState: () => void;
|
|
|
|
// ==================== 保留原有接口(向后兼容) ====================
|
|
//消息列表(废弃,保留兼容)
|
|
messageList: Message[];
|
|
//当前选中的消息(废弃,保留兼容)
|
|
currentMessage: Message | null;
|
|
//更新消息列表(废弃,保留兼容)
|
|
updateMessageList: (messageList: Message[]) => void;
|
|
//更新消息状态(废弃,保留兼容)
|
|
updateMessageStatus: (messageId: number, status: string) => void;
|
|
//更新当前选中的消息(废弃,保留兼容)
|
|
updateCurrentMessage: (message: Message) => void;
|
|
}
|