Global

Members

StoreName

Properties:
Name Type Description
APP String

应用级别的数据管理,主要用于某些功能的全局开关控制。

CONV String

会话数据管理

CHAT String

聊天数据管理

GRP String

群组数据管理

USER String

用户数据管理

FRIEND String

好友数据管理

SEARCH String

搜索数据管理

CUSTOM String

自定义数据管理,业务侧可根据需要添加自定义 key-value。

AppStore

Properties:
Name Type Description
enableTyping Boolean

正在输入功能是否开启,默认开启 true

enabledMessageReadReceipt Boolean

消息已读回执功能是否已开启,默认 false,购买旗舰版套餐后开启

enabledEmojiPlugin Boolean

表情回复插件能力是否已开启,默认 false,购买旗舰版套餐后开启

enabledOnlineStatus Boolean

用户在线状态能力是否已开启,默认 false,购买旗舰版套餐后开启

enabledCustomerServicePlugin Boolean

客服插件能力是否已开启,默认 false,购买客服插件后开启

enabledTranslationPlugin Boolean

文本消息翻译能力是否已开启,默认 false,购买翻译插件后开启

enableConversationDraft Boolean

会话草稿功能是否开启,默认开启 true

Examples
// UI 层调用以下逻辑关闭正在输入功能
TUIStore.update(StoreName.APP, 'enableTyping', false);
// UI 层调用以下逻辑关闭会话草稿功能
TUIStore.update(StoreName.APP, 'enableConversationDraft', false);

ConversationStore

Properties:
Name Type Description
currentConversationID String

当前会话ID

conversationList Array.<IConversationModel>

会话列表

totalUnreadCount Number

会话未读总数

Example
// UI 层监听会话列表更新通知
let onConversationListUpdated = function(conversationList) {
  console.warn(conversationList);
}
TUIStore.watch(StoreName.CONV, {
  conversationList: onConversationListUpdated,
})

ChatStore

Properties:
Name Type Description
messageList Array.<MessageModel>

消息列表

isCompleted Boolean

漫游是否拉完(用于控制‘查看更多’按钮显示)

quoteMessage Message | any

被引用的消息信息,引用消息时会触发更新

typingStatus Boolean

正在输入的状态标识, 默认 false,开启正在输入状态后,输入消息时会触发更新

messageSource MessageModel

用于消息云端搜索结果跳转至指定消息标识

newMessageList Array.<Message>

新消息通知列表,提供给 TUINotification 组件使用

translateTextInfo Record.<string, (string|undefined|boolean)>

文本消息翻译信息

Examples
// UI 层监听当前会话消息列表更新通知
let onMessageListUpdated = function(messageList) {
  console.warn(messageList);
}
TUIStore.watch(StoreName.CHAT, {
  messageList: onMessageListUpdated,
})
// UI 层更新消息云端搜索结果跳转至指定消息标识
TUIStore.update(StoreName.CHAT, 'messageSource', message);
// UI 层监听消息云端搜索结果跳转至指定消息标识
let onMessageSourceUpdated = function(message) {
  console.warn(message);
}
TUIStore.watch(StoreName.CHAT, {
  messageSource: onMessageSourceUpdated,
})
// UI 层更新文本消息翻译信息
TUIStore.update(StoreName.CHAT, 'translateTextInfo', {
  conversationID: 'xxx',
  messageID: 'xxx',
  visible: false,
});
// UI 层监听文本消息翻译更新通知
let onTranslateTextInfoUpdated = function(info) {
  // info 返回的是 map 或 undefined
  if (info) {
    const list = info.get('conversationID') || [];
    list.forEach(item => {
      const { messageID, visible } = item;
      // messageID - 当前操作的消息的 ID
      // visible - 是否显示翻译文本
    }
  }
}
TUIStore.watch(StoreName.CHAT, {
  translateTextInfo: onTranslateTextInfoUpdated,
})

GroupStore

Properties:
Name Type Description
currentGroupID String

当前群组ID

currentGroup Group

当前群组信息

currentGroupMemberList Array

当前群组群成员列表

currentGroupAttributes Object

当前群组群属性信息

currentGroupCounters Object

当前群组计数器信息

groupList Array.<Group>

群组列表

groupSystemNoticeList Array.<Message>

群组系统通知列表(注意:Store 中不会存储群系统通知,即时通知)

Example
// UI 层监听群组列表更新通知
let onGroupListUpdated = function(groupList) {
  console.warn(groupList);
}
TUIStore.watch(StoreName.GRP, {
  groupList: onGroupListUpdated,
})

UserStore

Properties:
Name Type Description
userProfile Object

当前登录用户的资料信息

displayOnlineStatus Boolean

是否开启用户状态显示,默认 false:关闭

displayMessageReadReceipt Boolean

是否开启消息阅读状态显示,默认 true:开启

kickedOut String

用户被踢的类型信息

netStateChange String

网络状态变更信息

userStatusList Map.<key, statusInfo>

订阅用户的状态信息的列表

  • key 用户 userID
  • statusInfo.statusType 用户当前状态
  • statusInfo.customStatus 用户自定义状态
userBlacklist Array.<string>

用户黑名单列表,UI 组件层可以通过监听该属性来获取用户黑名单列表

Example
// UI 层监听网络变更通知
let onNetStateChange = function(state) {
  console.warn(state);
}
TUIStore.watch(StoreName.USER, {
  netStateChange: onNetStateChange,
})

FriendStore

Properties:
Name Type Description
friendList Array.<Friend>

好友列表,UI 组件层可以通过监听该属性来获取好友列表

friendApplicationList Array.<FriendApplication>

好友申请列表,UI 组件层可以通过监听该属性来获取好友申请列表

friendApplicationUnreadCount number

好友申请未读数,UI 组件层可以通过监听该属性来获取好友申请未读数

Example
// UI 层监听好友列表更新变更通知
let onFriendListUpdated = function(friendList) {
  console.warn(friendList);
}
TUIStore.watch(StoreName.FRIEND, {
  friendList: onFriendListUpdated ,
})