Files
v-chat/packages/web/src/state/action.ts
T
2021-11-01 22:30:51 +08:00

40 lines
1.2 KiB
TypeScript

export enum ActionTypes {
/** 更新用户信息 */
UpdateUserInfo = 'UpdateUserInfo',
/** 更新客户端状态 */
SetStatus = 'SetStatus',
/** 退出登录 */
Logout = 'Logout',
/** 设置聚焦的联系人 */
SetFocus = 'SetFocus',
/** socket连接成功 */
Connect = 'Connect',
/** socket断开连接 */
Disconnect = 'Disconnect',
/** 改变侧边栏tab */
ChangeSideBarTabState = 'ChangeSideBarTabState',
/** 更新联系人 */
UpdateContacts = 'UpdateContacts',
/** 新增到消息列表 */
AddMessage = 'AddMessage',
/** 聚焦到下一个联系人 */
MoveFocusToNextActiveContact = 'MoveFocusToNextActiveContact',
/** 聚焦到上一个联系人 */
MoveFocusToPrevActiveContact = 'MoveFocusToPrevActiveContact',
DeactiveCurrentActiveContact = 'DeactiveCurrentActiveContact',
/** 更新消息 */
ForceUpdateMessagesAfterMutation = 'ForceUpdateMessages',
/** 更新消息列表联系人 */
ForceUpdateActiveContactsAfterMutation = 'ForceUpdateActiveContactsAfterMutation',
}
export interface SetStatusPayload {
key: string;
value: any;
}
export interface Action {
type: ActionTypes;
payload: any;
}