@tencentcloud/chat-uikit-react 2.1.2 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/.eslintrc.js +0 -1
  2. package/CHANGELOG.md +10 -0
  3. package/dist/cjs/components/Avatar/Avatar.js +1 -1
  4. package/dist/cjs/components/Checkbox/index.d.ts +2 -1
  5. package/dist/cjs/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -1
  6. package/dist/cjs/components/ConversationCreate/ConversationCreate.js +1 -1
  7. package/dist/cjs/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
  8. package/dist/cjs/components/ConversationPreview/ConversationPreview.js +1 -1
  9. package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.d.ts +4 -1
  10. package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.js +1 -1
  11. package/dist/cjs/components/ConversationPreview/utils.js +1 -1
  12. package/dist/cjs/components/ConversationSearch/ConversationSearchInput.d.ts +2 -1
  13. package/dist/cjs/components/ConversationSearch/ConversationSearchResult.js +1 -1
  14. package/dist/cjs/components/DivWithEdit/DivWithEdit.d.ts +3 -2
  15. package/dist/cjs/components/DivWithEdit/DivWithEdit.js +1 -1
  16. package/dist/cjs/components/DivWithEdit/WithText.js +1 -1
  17. package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +2 -1
  18. package/dist/cjs/components/Icon/Icon.d.ts +2 -1
  19. package/dist/cjs/components/Icon/Icon.js +1 -1
  20. package/dist/cjs/components/Input/Input.js +1 -1
  21. package/dist/cjs/components/Model/index.d.ts +1 -1
  22. package/dist/cjs/components/Model/index.js +1 -1
  23. package/dist/cjs/components/Plugins/index.js +1 -1
  24. package/dist/cjs/components/Popup/index.d.ts +1 -1
  25. package/dist/cjs/components/Popup/index.js +1 -1
  26. package/dist/cjs/components/Switch/Switch.d.ts +2 -6
  27. package/dist/cjs/components/Switch/Switch.js +1 -1
  28. package/dist/cjs/components/TUIChat/TUIChat.js +1 -1
  29. package/dist/cjs/components/TUIChat/TUIChatState.js +1 -1
  30. package/dist/cjs/components/TUIChat/hooks/useHandleMessage.js +1 -1
  31. package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -1
  32. package/dist/cjs/components/TUIChat/unitls.js +1 -1
  33. package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
  34. package/dist/cjs/components/TUIContact/TUIContactInfo/addFriendInfo.js +1 -1
  35. package/dist/cjs/components/TUIContact/TUIContactInfo/friendInfo.js +1 -1
  36. package/dist/cjs/components/TUIContact/TUIContactList/TUIContactList.js +1 -1
  37. package/dist/cjs/components/TUIContactSearch/TUIContactSearch.js +1 -1
  38. package/dist/cjs/components/TUIContactSearch/hooks/useContactSearch.js +1 -1
  39. package/dist/cjs/components/TUIConversation/TUIConversation.js +1 -1
  40. package/dist/cjs/components/TUIConversationList/hooks/useConversationList.js +1 -1
  41. package/dist/cjs/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
  42. package/dist/cjs/components/TUIKit/TUIKit.d.ts +2 -2
  43. package/dist/cjs/components/TUIKit/TUIKit.js +1 -1
  44. package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +7 -7
  45. package/dist/cjs/components/TUIKit/hooks/useTUIKit.d.ts +2 -2
  46. package/dist/cjs/components/TUIKit/hooks/useTUIKit.js +1 -1
  47. package/dist/cjs/components/TUIManage/TUIManage.d.ts +4 -1
  48. package/dist/cjs/components/TUIManage/TUIManage.js +1 -1
  49. package/dist/cjs/components/TUIMessage/MessageAudio.js +1 -1
  50. package/dist/cjs/components/TUIMessage/MessageAvatar.js +1 -1
  51. package/dist/cjs/components/TUIMessage/MessageBubble.js +1 -1
  52. package/dist/cjs/components/TUIMessage/MessageContext.js +1 -1
  53. package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -1
  54. package/dist/cjs/components/TUIMessage/MessageFace.js +1 -1
  55. package/dist/cjs/components/TUIMessage/MessageFile.js +1 -1
  56. package/dist/cjs/components/TUIMessage/MessageImage.js +1 -1
  57. package/dist/cjs/components/TUIMessage/MessageLocation.js +1 -1
  58. package/dist/cjs/components/TUIMessage/MessageMerger.js +1 -1
  59. package/dist/cjs/components/TUIMessage/MessageName.js +1 -1
  60. package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -1
  61. package/dist/cjs/components/TUIMessage/MessageProgress.js +1 -1
  62. package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -1
  63. package/dist/cjs/components/TUIMessage/MessageText.js +1 -1
  64. package/dist/cjs/components/TUIMessage/MessageVideo.js +1 -1
  65. package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -1
  66. package/dist/cjs/components/TUIMessage/TUIMessageDefault.js +1 -1
  67. package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -1
  68. package/dist/cjs/components/TUIMessage/hooks/useMessageReply.js +1 -1
  69. package/dist/cjs/components/TUIMessage/utils/index.js +1 -1
  70. package/dist/cjs/components/TUIMessageInput/EmojiPicker.js +1 -1
  71. package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.js +1 -1
  72. package/dist/cjs/components/TUIMessageInput/InputQuoteDefalut.js +1 -1
  73. package/dist/cjs/components/TUIMessageInput/TUIForward.js +1 -1
  74. package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
  75. package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
  76. package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
  77. package/dist/cjs/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
  78. package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.d.ts +2 -2
  79. package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
  80. package/dist/cjs/components/TUIMessageInput/hooks/useUploadElement.js +1 -1
  81. package/dist/cjs/components/TUIMessageList/TUIMessageList.js +1 -1
  82. package/dist/cjs/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
  83. package/dist/cjs/components/TUIProfile/TUIProfile.js +1 -1
  84. package/dist/cjs/components/TUIProfile/TUIProfileDefault.d.ts +2 -2
  85. package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -1
  86. package/dist/cjs/components/TUIProfile/hooks/useMyProfile.js +1 -1
  87. package/dist/cjs/components/Toast/index.js +1 -1
  88. package/dist/cjs/context/ComponentContext.d.ts +3 -2
  89. package/dist/cjs/context/TUIChatActionContext.d.ts +1 -1
  90. package/dist/cjs/context/TUIChatStateContext.d.ts +4 -4
  91. package/dist/cjs/context/TUIContactContext.js +1 -1
  92. package/dist/cjs/context/TUIConversationContext.js +1 -1
  93. package/dist/cjs/context/TUIKitContext.d.ts +1 -1
  94. package/dist/cjs/context/TUIMessageContext.js +1 -1
  95. package/dist/cjs/context/TUIMessageInputContext.js +1 -1
  96. package/dist/cjs/hooks/useProfile.d.ts +1 -1
  97. package/dist/cjs/index.css +1 -1
  98. package/dist/cjs/index.d.css +3 -3
  99. package/dist/cjs/index.d.ts +1 -1
  100. package/dist/cjs/index.js +1 -1
  101. package/dist/esm/components/Avatar/Avatar.js +1 -1
  102. package/dist/esm/components/Checkbox/index.d.ts +2 -1
  103. package/dist/esm/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -1
  104. package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -1
  105. package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
  106. package/dist/esm/components/ConversationPreview/ConversationPreview.js +1 -1
  107. package/dist/esm/components/ConversationPreview/ConversationPreviewContent.d.ts +4 -1
  108. package/dist/esm/components/ConversationPreview/ConversationPreviewContent.js +1 -1
  109. package/dist/esm/components/ConversationPreview/utils.js +1 -1
  110. package/dist/esm/components/ConversationSearch/ConversationSearchInput.d.ts +2 -1
  111. package/dist/esm/components/ConversationSearch/ConversationSearchResult.js +1 -1
  112. package/dist/esm/components/DivWithEdit/DivWithEdit.d.ts +3 -2
  113. package/dist/esm/components/DivWithEdit/DivWithEdit.js +1 -1
  114. package/dist/esm/components/DivWithEdit/WithText.js +1 -1
  115. package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +2 -1
  116. package/dist/esm/components/Icon/Icon.d.ts +2 -1
  117. package/dist/esm/components/Icon/Icon.js +1 -1
  118. package/dist/esm/components/Input/Input.js +1 -1
  119. package/dist/esm/components/Model/index.d.ts +1 -1
  120. package/dist/esm/components/Model/index.js +1 -1
  121. package/dist/esm/components/Plugins/index.js +1 -1
  122. package/dist/esm/components/Popup/index.d.ts +1 -1
  123. package/dist/esm/components/Popup/index.js +1 -1
  124. package/dist/esm/components/Switch/Switch.d.ts +2 -6
  125. package/dist/esm/components/Switch/Switch.js +1 -1
  126. package/dist/esm/components/TUIChat/TUIChat.js +1 -1
  127. package/dist/esm/components/TUIChat/TUIChatState.js +1 -1
  128. package/dist/esm/components/TUIChat/hooks/useHandleMessage.js +1 -1
  129. package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -1
  130. package/dist/esm/components/TUIChat/unitls.js +1 -1
  131. package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
  132. package/dist/esm/components/TUIContact/TUIContactInfo/addFriendInfo.js +1 -1
  133. package/dist/esm/components/TUIContact/TUIContactInfo/friendInfo.js +1 -1
  134. package/dist/esm/components/TUIContact/TUIContactList/TUIContactList.js +1 -1
  135. package/dist/esm/components/TUIContactSearch/TUIContactSearch.js +1 -1
  136. package/dist/esm/components/TUIContactSearch/hooks/useContactSearch.js +1 -1
  137. package/dist/esm/components/TUIConversation/TUIConversation.js +1 -1
  138. package/dist/esm/components/TUIConversationList/hooks/useConversationList.js +1 -1
  139. package/dist/esm/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
  140. package/dist/esm/components/TUIKit/TUIKit.d.ts +2 -2
  141. package/dist/esm/components/TUIKit/TUIKit.js +1 -1
  142. package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +7 -7
  143. package/dist/esm/components/TUIKit/hooks/useTUIKit.d.ts +2 -2
  144. package/dist/esm/components/TUIKit/hooks/useTUIKit.js +1 -1
  145. package/dist/esm/components/TUIManage/TUIManage.d.ts +4 -1
  146. package/dist/esm/components/TUIManage/TUIManage.js +1 -1
  147. package/dist/esm/components/TUIMessage/MessageAudio.js +1 -1
  148. package/dist/esm/components/TUIMessage/MessageAvatar.js +1 -1
  149. package/dist/esm/components/TUIMessage/MessageBubble.js +1 -1
  150. package/dist/esm/components/TUIMessage/MessageContext.js +1 -1
  151. package/dist/esm/components/TUIMessage/MessageCustom.js +1 -1
  152. package/dist/esm/components/TUIMessage/MessageFace.js +1 -1
  153. package/dist/esm/components/TUIMessage/MessageFile.js +1 -1
  154. package/dist/esm/components/TUIMessage/MessageImage.js +1 -1
  155. package/dist/esm/components/TUIMessage/MessageLocation.js +1 -1
  156. package/dist/esm/components/TUIMessage/MessageMerger.js +1 -1
  157. package/dist/esm/components/TUIMessage/MessageName.js +1 -1
  158. package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -1
  159. package/dist/esm/components/TUIMessage/MessageProgress.js +1 -1
  160. package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -1
  161. package/dist/esm/components/TUIMessage/MessageText.js +1 -1
  162. package/dist/esm/components/TUIMessage/MessageVideo.js +1 -1
  163. package/dist/esm/components/TUIMessage/TUIMessage.js +1 -1
  164. package/dist/esm/components/TUIMessage/TUIMessageDefault.js +1 -1
  165. package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -1
  166. package/dist/esm/components/TUIMessage/hooks/useMessageReply.js +1 -1
  167. package/dist/esm/components/TUIMessage/utils/index.js +1 -1
  168. package/dist/esm/components/TUIMessageInput/EmojiPicker.js +1 -1
  169. package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.js +1 -1
  170. package/dist/esm/components/TUIMessageInput/InputQuoteDefalut.js +1 -1
  171. package/dist/esm/components/TUIMessageInput/TUIForward.js +1 -1
  172. package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
  173. package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
  174. package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
  175. package/dist/esm/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
  176. package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.d.ts +2 -2
  177. package/dist/esm/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
  178. package/dist/esm/components/TUIMessageInput/hooks/useUploadElement.js +1 -1
  179. package/dist/esm/components/TUIMessageList/TUIMessageList.js +1 -1
  180. package/dist/esm/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
  181. package/dist/esm/components/TUIProfile/TUIProfile.js +1 -1
  182. package/dist/esm/components/TUIProfile/TUIProfileDefault.d.ts +2 -2
  183. package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -1
  184. package/dist/esm/components/TUIProfile/hooks/useMyProfile.js +1 -1
  185. package/dist/esm/components/Toast/index.js +1 -1
  186. package/dist/esm/context/ComponentContext.d.ts +3 -2
  187. package/dist/esm/context/TUIChatActionContext.d.ts +1 -1
  188. package/dist/esm/context/TUIChatStateContext.d.ts +4 -4
  189. package/dist/esm/context/TUIContactContext.js +1 -1
  190. package/dist/esm/context/TUIConversationContext.js +1 -1
  191. package/dist/esm/context/TUIKitContext.d.ts +1 -1
  192. package/dist/esm/context/TUIMessageContext.js +1 -1
  193. package/dist/esm/context/TUIMessageInputContext.js +1 -1
  194. package/dist/esm/hooks/useProfile.d.ts +1 -1
  195. package/dist/esm/index.css +1 -1
  196. package/dist/esm/index.d.css +3 -3
  197. package/dist/esm/index.d.ts +1 -1
  198. package/dist/esm/index.js +1 -1
  199. package/index.ts +1 -0
  200. package/package.json +7 -6
  201. package/rollup.config.js +2 -1
  202. package/src/components/Avatar/Avatar.tsx +7 -3
  203. package/src/components/Avatar/styles/index.scss +1 -1
  204. package/src/components/Checkbox/index.tsx +1 -1
  205. package/src/components/ConversationCreate/ConversationCreatGroupDetail.tsx +14 -7
  206. package/src/components/ConversationCreate/ConversationCreate.tsx +5 -1
  207. package/src/components/ConversationCreate/ConversationCreateSelectView.tsx +2 -2
  208. package/src/components/ConversationCreate/ConversationCreateUserSelectList.tsx +11 -10
  209. package/src/components/ConversationCreate/hooks/useConversationCreate.tsx +14 -12
  210. package/src/components/ConversationPreview/ConversationPreview.tsx +3 -3
  211. package/src/components/ConversationPreview/ConversationPreviewContent.tsx +9 -5
  212. package/src/components/ConversationPreview/utils.tsx +6 -3
  213. package/src/components/DivWithEdit/DivWithEdit.tsx +6 -5
  214. package/src/components/DivWithEdit/WithText.tsx +3 -1
  215. package/src/components/DivWithEdit/styles/index.scss +1 -1
  216. package/src/components/Icon/Icon.tsx +2 -2
  217. package/src/components/Input/Input.tsx +15 -12
  218. package/src/components/Model/index.tsx +2 -2
  219. package/src/components/Plugins/index.tsx +15 -12
  220. package/src/components/Popup/index.tsx +13 -9
  221. package/src/components/Profile/index.ts +1 -2
  222. package/src/components/Switch/Switch.tsx +5 -7
  223. package/src/components/TUIChat/TUIChat.tsx +20 -5
  224. package/src/components/TUIChat/TUIChatState.tsx +3 -3
  225. package/src/components/TUIChat/hooks/useHandleMessage.tsx +5 -5
  226. package/src/components/TUIChat/hooks/useHandleMessageList.tsx +2 -2
  227. package/src/components/TUIChat/unitls.ts +2 -2
  228. package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +1 -1
  229. package/src/components/TUIContact/TUIContactInfo/addFriendInfo.tsx +2 -2
  230. package/src/components/TUIContact/TUIContactInfo/friendInfo.tsx +1 -2
  231. package/src/components/TUIContact/TUIContactInfo/hooks/useContactInfo.tsx +0 -10
  232. package/src/components/TUIContact/TUIContactList/TUIContactList.tsx +5 -3
  233. package/src/components/TUIContact/hooks/useTUIContact.tsx +3 -4
  234. package/src/components/TUIContactSearch/TUIContactSearch.tsx +6 -7
  235. package/src/components/TUIContactSearch/hooks/useContactSearch.tsx +1 -3
  236. package/src/components/TUIConversationList/TUIConversationList.tsx +1 -1
  237. package/src/components/TUIConversationList/hooks/useConversationList.tsx +19 -24
  238. package/src/components/TUIConversationList/hooks/useConversationUpdate.tsx +2 -2
  239. package/src/components/TUIKit/TUIKit.tsx +31 -12
  240. package/src/components/TUIKit/hooks/useTUIKit.tsx +14 -10
  241. package/src/components/TUIManage/TUIManage.tsx +20 -13
  242. package/src/components/TUIMessage/MessageAudio.tsx +8 -6
  243. package/src/components/TUIMessage/MessageAvatar.tsx +2 -2
  244. package/src/components/TUIMessage/MessageBubble.tsx +7 -5
  245. package/src/components/TUIMessage/MessageContext.tsx +3 -3
  246. package/src/components/TUIMessage/MessageCustom.tsx +5 -3
  247. package/src/components/TUIMessage/MessageFace.tsx +2 -2
  248. package/src/components/TUIMessage/MessageFile.tsx +5 -5
  249. package/src/components/TUIMessage/MessageImage.tsx +4 -2
  250. package/src/components/TUIMessage/MessageLocation.tsx +3 -3
  251. package/src/components/TUIMessage/MessageMerger.tsx +3 -3
  252. package/src/components/TUIMessage/MessageName.tsx +1 -1
  253. package/src/components/TUIMessage/MessagePlugins.tsx +12 -10
  254. package/src/components/TUIMessage/MessageProgress.tsx +5 -4
  255. package/src/components/TUIMessage/MessageRevoke.tsx +1 -1
  256. package/src/components/TUIMessage/MessageText.tsx +4 -4
  257. package/src/components/TUIMessage/MessageVideo.tsx +3 -3
  258. package/src/components/TUIMessage/TUIMessage.tsx +1 -1
  259. package/src/components/TUIMessage/TUIMessageDefault.tsx +3 -1
  260. package/src/components/TUIMessage/hooks/useMessageHandler.ts +13 -13
  261. package/src/components/TUIMessage/hooks/useMessageReply.ts +6 -4
  262. package/src/components/TUIMessage/utils/decodeText.ts +2 -3
  263. package/src/components/TUIMessage/utils/index.ts +1 -2
  264. package/src/components/TUIMessageInput/EmojiPicker.tsx +4 -4
  265. package/src/components/TUIMessageInput/InputPluginsDefalut.tsx +8 -8
  266. package/src/components/TUIMessageInput/InputQuoteDefalut.tsx +4 -2
  267. package/src/components/TUIMessageInput/TUIForward.tsx +22 -15
  268. package/src/components/TUIMessageInput/TUIMessageInputDefault.tsx +15 -9
  269. package/src/components/TUIMessageInput/hooks/useEmojiPicker.tsx +2 -2
  270. package/src/components/TUIMessageInput/hooks/useHandleForwardMessage.tsx +4 -4
  271. package/src/components/TUIMessageInput/hooks/useHandleQuoteMessage.tsx +5 -5
  272. package/src/components/TUIMessageInput/hooks/useMessageInputState.tsx +3 -3
  273. package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +12 -9
  274. package/src/components/TUIMessageInput/hooks/useUploadElement.tsx +2 -2
  275. package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +1 -1
  276. package/src/components/TUIMessageList/TUIMessageList.tsx +5 -6
  277. package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +5 -2
  278. package/src/components/TUIProfile/TUIProfile.tsx +3 -1
  279. package/src/components/TUIProfile/TUIProfileDefault.tsx +17 -17
  280. package/src/components/TUIProfile/hooks/useMyProfile.tsx +19 -37
  281. package/src/components/Toast/index.tsx +3 -3
  282. package/src/components/Toast/styles/layout.scss +1 -1
  283. package/src/components/untils.ts +1 -1
  284. package/src/context/TUIChatStateContext.tsx +4 -4
  285. package/src/context/TUIContactContext.tsx +1 -1
  286. package/src/context/TUIConversationContext.tsx +2 -2
  287. package/src/context/TUIMessageContext.tsx +1 -1
  288. package/src/context/TUIMessageInputContext.tsx +1 -1
  289. package/src/hooks/useConversation.tsx +1 -1
  290. package/src/hooks/useProfile.tsx +2 -2
  291. package/tsconfig.json +1 -0
  292. package/dist/cjs/components/TUIProfile/hooks/useMyProfile.d.ts +0 -17
  293. package/dist/esm/components/TUIProfile/hooks/useMyProfile.d.ts +0 -17
  294. package/src/components/Profile/hooks/useProfile.tsx +0 -28
@@ -27,14 +27,14 @@ export function useHandleMessageList<T extends CreateMessageProps>(props:T) {
27
27
  } = props;
28
28
 
29
29
  const editLocalMessage = useCallback((message: Message) => {
30
- dispatch({
30
+ dispatch && dispatch({
31
31
  type: CONSTANT_DISPATCH_TYPE.SET_EDIT_MESSAGE,
32
32
  value: message,
33
33
  });
34
34
  }, [dispatch]);
35
35
 
36
36
  const updateUploadPendingMessageList = useCallback((message: Message) => {
37
- dispatch({
37
+ dispatch && dispatch({
38
38
  type: CONSTANT_DISPATCH_TYPE.UPDATE_UPLOAD_PENDING_MESSAGE_LIST,
39
39
  value: message,
40
40
  });
@@ -3,7 +3,7 @@ import constant from '../../constants';
3
3
  import { JSONStringToParse } from '../untils';
4
4
 
5
5
  export const handleMessage = (messageList:Array<Message>):Array<Message> => {
6
- let customPayloadData = null;
6
+ let customPayloadData: any = null;
7
7
  return messageList.filter((item) => {
8
8
  if (item.type === TencentCloudChat.TYPES.MSG_CUSTOM) {
9
9
  customPayloadData = JSONStringToParse(item?.payload?.data);
@@ -30,7 +30,7 @@ export const handleUploadPendingMessage = (
30
30
  message: Message,
31
31
  ) => {
32
32
  const list = [...messageList];
33
- if (!list.some((item:Message) => item.ID === message.ID)) {
33
+ if (!list.some((item:Message) => item.ID === message?.ID)) {
34
34
  list.push(message);
35
35
  }
36
36
  const index = list.findIndex((item) => item?.ID === message?.ID);
@@ -84,7 +84,7 @@ function TUIChatHeaderDefaultWithContext <T extends TUIChatHeaderBasicProps>(
84
84
  };
85
85
  const { setTUIManageShow } = useTUIKitContext();
86
86
  const openTUIManage = () => {
87
- setTUIManageShow(true);
87
+ setTUIManageShow && setTUIManageShow(true);
88
88
  };
89
89
 
90
90
  return (
@@ -41,7 +41,7 @@ export function UnMemoizedAddFriendInfo<T extends Props>(
41
41
  setIsEditRemark('');
42
42
  };
43
43
 
44
- const handleChange = (e) => {
44
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
45
45
  setWording(e.target.value);
46
46
  };
47
47
  return (
@@ -51,7 +51,7 @@ export function UnMemoizedAddFriendInfo<T extends Props>(
51
51
  <div className="tui-contact-info-content">
52
52
  <div className="content-item-wording">
53
53
  <p className="content-item-label">{t('TUIContact.Enter the verification info')}</p>
54
- <textarea className="content-item-wording-text" value={wording} onChange={handleChange} />
54
+ <textarea className="content-item-wording-text" value={wording} onChange={(e: any) => {handleChange(e)}} />
55
55
  </div>
56
56
  <div className="content-item">
57
57
  <p className="content-item-label">{t('TUIContact.remark')}</p>
@@ -52,7 +52,6 @@ export function UnMemoizedFriendInfo<T extends Props>(
52
52
  const addToBlocklistHandler = async () => {
53
53
  await addToBlocklist(userID);
54
54
  setIsAddToBlocklist(true);
55
- // 清空右侧 container 内容
56
55
  setActiveContact();
57
56
  };
58
57
 
@@ -65,7 +64,7 @@ export function UnMemoizedFriendInfo<T extends Props>(
65
64
  const conversation = await createConversation(conversationID);
66
65
  TUIConversationService.switchConversation(conversationID);
67
66
  setActiveConversation(conversation);
68
- openChat();
67
+ openChat && openChat();
69
68
  };
70
69
 
71
70
  return (
@@ -6,14 +6,12 @@ import { useTUIKitContext } from '../../../../context';
6
6
  function useContactInfo() {
7
7
  const { chat } = useTUIKitContext('useContactInfo');
8
8
 
9
- // 移除黑名单
10
9
  const removeFromBlocklist = useCallback((userID: string) => {
11
10
  chat.removeFromBlacklist({
12
11
  userIDList: [userID],
13
12
  });
14
13
  }, [chat]);
15
14
 
16
- // 添加好友
17
15
  const addFriend = useCallback((param: any) => {
18
16
  chat.addFriend({
19
17
  to: param?.userID,
@@ -29,14 +27,12 @@ function useContactInfo() {
29
27
  });
30
28
  }, [chat]);
31
29
 
32
- // 删除好友
33
30
  const deleteFriend = useCallback((userID: string) => {
34
31
  chat.deleteFriend({
35
32
  userIDList: [userID],
36
33
  });
37
34
  }, [chat]);
38
35
 
39
- // 添加黑名单
40
36
  const addToBlocklist = useCallback((userID: string) => {
41
37
  chat.addToBlacklist({
42
38
  userIDList: [userID],
@@ -55,8 +51,6 @@ function useContactInfo() {
55
51
  userID,
56
52
  });
57
53
  }, [chat]);
58
- // 好友相关
59
- // 判断是否为双向好友关系
60
54
  const isFriend = (info: any): Promise<boolean> => (
61
55
  new Promise((resolve, reject) => {
62
56
  chat.checkFriend({
@@ -65,19 +59,15 @@ function useContactInfo() {
65
59
  })
66
60
  .then((res: any) => {
67
61
  switch (res?.data?.successUserIDList[0]?.relation) {
68
- // 无好友关系:A 的好友表中没有 B,B 的好友表中也没有 A
69
62
  case TencentCloudChat.TYPES.SNS_TYPE_NO_RELATION:
70
63
  resolve(false);
71
64
  break;
72
- // 单项好友:A 的好友表中有 B,但 B 的好友表中没有 A
73
65
  case TencentCloudChat.TYPES.SNS_TYPE_A_WITH_B:
74
66
  resolve(false);
75
67
  break;
76
- // 单项好友:A 的好友表中没有 B,但 B 的好友表中有 A
77
68
  case TencentCloudChat.TYPES.SNS_TYPE_B_WITH_A:
78
69
  resolve(false);
79
70
  break;
80
- // 双向好友关系
81
71
  case TencentCloudChat.TYPES.SNS_TYPE_BOTH_WAY:
82
72
  resolve(true);
83
73
  break;
@@ -30,6 +30,8 @@ function UnMemoizedTUIContactList<T>(): React.ReactElement {
30
30
  acceptFriendApplication(userID);
31
31
  setActiveContact();
32
32
  };
33
+ // eslint-disable-next-line
34
+ // @ts-ignore
33
35
  return (
34
36
  isShowContactList && (
35
37
  <div className={`tui-contacts-list ${isH5 ? 'tui-contacts-list-h5' : ''} `}>
@@ -45,7 +47,7 @@ function UnMemoizedTUIContactList<T>(): React.ReactElement {
45
47
  </div>
46
48
  </div>
47
49
  {iShowFriendApplication
48
- && friendApplicationList.map((item, index) => {
50
+ && friendApplicationList?.map((item, index) => {
49
51
  const {
50
52
  userID, avatar, nick, wording, type,
51
53
  } = item;
@@ -106,7 +108,7 @@ function UnMemoizedTUIContactList<T>(): React.ReactElement {
106
108
  </div>
107
109
  </div>
108
110
  {isShowBlocklist
109
- && blocklistProfile.map((item, index) => {
111
+ && blocklistProfile?.map((item, index) => {
110
112
  const { userID, avatar, nick } = item;
111
113
  return (
112
114
  <div
@@ -137,7 +139,7 @@ function UnMemoizedTUIContactList<T>(): React.ReactElement {
137
139
  </div>
138
140
  </div>
139
141
  {iShowFriends
140
- && friendList.map((item, index) => {
142
+ && friendList?.map((item, index) => {
141
143
  const { userID, avatar, nick } = item.profile;
142
144
  return (
143
145
  <div
@@ -35,7 +35,6 @@ function useTUIContact() {
35
35
  setFriendList(data);
36
36
  }
37
37
  };
38
- // todo: 获取 100个
39
38
  const getBlocklist = async () => {
40
39
  const { data: _blocklist } = await chat.getBlacklist();
41
40
  if (_blocklist.length === 0) {
@@ -51,15 +50,15 @@ function useTUIContact() {
51
50
  });
52
51
  setBlocklistProfile(data);
53
52
  };
54
- const onFriendApplicationListUpdated = (event) => {
53
+ const onFriendApplicationListUpdated = (event: any) => {
55
54
  setFriendApplicationList(event?.data?.friendApplicationList);
56
55
  };
57
- const onBlocklistUpdated = (event) => {
56
+ const onBlocklistUpdated = (event: any) => {
58
57
  setBlockList(event.data);
59
58
  getBlocklistProfile(event.data);
60
59
  };
61
60
 
62
- const onFriendListUpdated = (event) => {
61
+ const onFriendListUpdated = (event: any) => {
63
62
  setFriendList(event.data);
64
63
  };
65
64
 
@@ -16,19 +16,19 @@ export function UnMemoizedTUIContactSearch<T>(): React.ReactElement {
16
16
  const [searchedValue, setSearchedValue] = useState('');
17
17
  const [searchResult, setSearchResult] = useState([]);
18
18
 
19
- const searchValueChange = (e) => {
19
+ const searchValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {
20
20
  if (e.target?.value === '') {
21
- setShowContactList(true);
21
+ setShowContactList && setShowContactList(true);
22
22
  setShowSearchResult(false);
23
23
  setSearchResult([]);
24
24
  return;
25
25
  }
26
26
  setShowSearchResult(true);
27
27
  setSearchedValue(e.target?.value);
28
- setShowContactList(false);
28
+ setShowContactList && setShowContactList(false);
29
29
  };
30
30
 
31
- const searchValueBlur = (e) => {
31
+ const searchValueBlur = (e: React.ChangeEvent<HTMLInputElement>) => {
32
32
  setSearchedValue(e.target?.value);
33
33
  };
34
34
 
@@ -47,15 +47,14 @@ export function UnMemoizedTUIContactSearch<T>(): React.ReactElement {
47
47
  const setContactProfile = async (profile: any) => {
48
48
  const isFriend = await checkFriend(profile);
49
49
  if (isFriend) {
50
- const friendProfile = friendList.find((item) => item.userID === searchedValue);
51
- setActiveContact({ type: 'friend', data: friendProfile });
50
+ const friendProfile = friendList?.find((item) => item.userID === searchedValue);
51
+ friendProfile && setActiveContact({ type: 'friend', data: friendProfile });
52
52
  return;
53
53
  }
54
54
  if (isBlock(profile.userID)) {
55
55
  setActiveContact({ type: 'block', data: profile });
56
56
  return;
57
57
  }
58
- // set 数据
59
58
  setActiveContact({ type: 'addFriend', data: profile });
60
59
  };
61
60
  return (
@@ -5,8 +5,6 @@ function useContactSearch() {
5
5
  const { blockList } = useTUIContactContext('TUIContactList');
6
6
  const { chat } = useTUIKitContext('TUIContactSearch');
7
7
 
8
- // 好友相关
9
- // 判断是否为双向好友关系
10
8
  const checkFriend = (info: any): Promise<any> => chat.checkFriend({
11
9
  userIDList: [info?.userID],
12
10
  type: TencentCloudChat.TYPES.SNS_CHECK_TYPE_BOTH,
@@ -14,7 +12,7 @@ function useContactSearch() {
14
12
  === TencentCloudChat.TYPES.SNS_TYPE_BOTH_WAY);
15
13
 
16
14
  const isBlock = (userID: string) => (
17
- blockList.includes(userID)
15
+ blockList?.includes(userID)
18
16
  );
19
17
  const getUserProfile = (userID: string) => (
20
18
  chat.getUserProfile({
@@ -82,7 +82,7 @@ export function UnMemoTUIConversationList<T extends Props>(props: T):React.React
82
82
  const [conversationCreated, setConversationCreated] = useState(false);
83
83
  const [activeConversationID, setActiveConversationID] = useState('');
84
84
 
85
- const handleSearchValueChange = (e) => {
85
+ const handleSearchValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {
86
86
  setSearchValue(e.target?.value);
87
87
  if (e.target?.value) {
88
88
  const result = conversationList.filter(
@@ -1,6 +1,9 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import TencentCloudChat, { ChatSDK, Conversation } from '@tencentcloud/chat';
3
-
3
+ import {
4
+ TUIStore,
5
+ StoreName,
6
+ } from '@tencentcloud/chat-uikit-engine';
4
7
  function useConversationList(
5
8
  chat: ChatSDK,
6
9
  activeConversationHandler?:(
@@ -10,33 +13,25 @@ function useConversationList(
10
13
  filterConversation?:(conversationList: Array<Conversation>) => Array<Conversation>,
11
14
  ) {
12
15
  const [conversationList, setConversationList] = useState<Array<Conversation>>([]);
13
- const queryConversation = async (queryType?: string) => {
14
- if (queryType === 'reload') {
15
- setConversationList([]);
16
+ const onConversationListUpdated = (list: any) => {
17
+ let resConversationList = [];
18
+ if (filterConversation) {
19
+ resConversationList = filterConversation(list);
20
+ } else {
21
+ resConversationList = list.filter(
22
+ (item: any) => item.type !== TencentCloudChat.TYPES.CONV_SYSTEM,
23
+ );
16
24
  }
17
- const offset = queryType === 'reload' ? 0 : conversationList.length;
18
-
19
- const res = await chat?.getConversationList();
20
- if (res?.code === 0) {
21
- let resConversationList = [];
22
- if (filterConversation) {
23
- resConversationList = filterConversation(res.data.conversationList);
24
- } else {
25
- resConversationList = res.data.conversationList.filter(
26
- (item) => item.type !== TencentCloudChat.TYPES.CONV_SYSTEM,
27
- );
28
- }
29
- const newConversationList = queryType === 'reload'
30
- ? resConversationList
31
- : [...conversationList, resConversationList];
32
- setConversationList(newConversationList);
33
- if (!offset && activeConversationHandler) {
34
- activeConversationHandler(newConversationList, setConversationList);
35
- }
25
+ setConversationList(resConversationList);
26
+ if (activeConversationHandler) {
27
+ activeConversationHandler(resConversationList, setConversationList);
36
28
  }
37
29
  };
30
+
38
31
  useEffect(() => {
39
- queryConversation('reload');
32
+ TUIStore.watch(StoreName.CONV, {
33
+ conversationList: onConversationListUpdated,
34
+ });
40
35
  }, [chat]);
41
36
  return {
42
37
  conversationList,
@@ -19,7 +19,7 @@ export const useConversationUpdate = (
19
19
  setConversationList(filterConversation(event.data));
20
20
  } else {
21
21
  setConversationList(event.data.filter(
22
- (item) => item.type !== TencentCloudChat.TYPES.CONV_SYSTEM,
22
+ (item: any) => item.type !== TencentCloudChat.TYPES.CONV_SYSTEM,
23
23
  ));
24
24
  }
25
25
  }
@@ -27,7 +27,7 @@ export const useConversationUpdate = (
27
27
  forceUpdate();
28
28
  }
29
29
  if (customHandler && typeof customHandler === 'function') {
30
- customHandler(setConversationList, event);
30
+ setConversationList && customHandler(setConversationList, event);
31
31
  }
32
32
  };
33
33
  chat?.on(TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED, onConversationListUpdated);
@@ -1,6 +1,7 @@
1
1
  import React, { PropsWithChildren, useState, useEffect } from 'react';
2
2
  import { ChatSDK, Conversation } from '@tencentcloud/chat';
3
- import { TUIStore, StoreName } from '@tencentcloud/chat-uikit-engine';
3
+ import { TUIStore, StoreName, IConversationModel } from '@tencentcloud/chat-uikit-engine';
4
+ import { TUILogin } from '@tencentcloud/tui-core';
4
5
  import { useTranslation } from 'react-i18next';
5
6
  import { isH5, isPC } from '../../utils/env';
6
7
  import { useTUIKit, UseContactParams } from './hooks/useTUIKit';
@@ -22,7 +23,7 @@ import contacts from '../Icon/images/contacts.svg';
22
23
  import contactsSelected from '../Icon/images/contacts-selected.svg';
23
24
 
24
25
  export interface ChatProps {
25
- chat?: ChatSDK | null,
26
+ chat?: any,
26
27
  language?: string,
27
28
  customClasses?: unknown,
28
29
  activeConversation?: Conversation,
@@ -126,13 +127,16 @@ export function TUIKit<
126
127
  >(
127
128
  props:PropsWithChildren<T>,
128
129
  ):React.ReactElement {
129
- const [currentConversationID, setCurrentConversationID] = useState<string>('');
130
130
  const [moduleValue, setModuleValue] = useState('chats');
131
131
  const { t } = useTranslation();
132
-
133
132
  const {
134
- children, chat, customClasses, activeConversation, language = 'en',
133
+ children,
134
+ chat = TUILogin.getContext().chat,
135
+ customClasses,
136
+ activeConversation,
137
+ language = 'en',
135
138
  } = props;
139
+
136
140
  (window as any).tencent_cloud_im_csig_react_uikit_23F_xa = true;
137
141
  const {
138
142
  conversation,
@@ -161,21 +165,21 @@ export function TUIKit<
161
165
  });
162
166
  useEffect(() => {
163
167
  TUIStore.watch(StoreName.CONV, {
164
- currentConversationID: onCurrentConversationID,
168
+ currentConversation: onCurrentConversation,
165
169
  });
166
170
  return () => {
167
171
  TUIStore.unwatch(StoreName.CONV, {
168
- currentConversationID: onCurrentConversationID,
172
+ currentConversation: onCurrentConversation,
169
173
  });
170
174
  };
171
175
  }, []);
172
176
 
173
- const onCurrentConversationID = (id: string) => {
174
- setCurrentConversationID(id);
175
- };
176
177
  const switchTabbar = (value: string) => {
177
178
  setModuleValue(value);
178
179
  };
180
+ const onCurrentConversation = (conversationModel: IConversationModel) => {
181
+ setActiveConversation(conversationModel?.getConversation());
182
+ };
179
183
 
180
184
  const tabbarRender = (
181
185
  <div className="sample-chat-tab">
@@ -200,8 +204,23 @@ export function TUIKit<
200
204
  return (
201
205
  <TUIKitProvider value={chatContextValue}>
202
206
  <div className="tui-kit">
203
- {children || (isPC && <RenderForPC moduleValue={moduleValue} tabbarRender={tabbarRender} setModuleValue={setModuleValue} />)
204
- || (isH5 && <RenderForH5 contactData={contactData} moduleValue={moduleValue} tabbarRender={tabbarRender} currentConversationID={currentConversationID} setModuleValue={setModuleValue} />)}
207
+ {children ||
208
+ (isPC && (
209
+ <RenderForPC
210
+ moduleValue={moduleValue}
211
+ tabbarRender={tabbarRender}
212
+ setModuleValue={setModuleValue}
213
+ />
214
+ )) ||
215
+ (isH5 && (
216
+ <RenderForH5
217
+ contactData={contactData}
218
+ moduleValue={moduleValue}
219
+ tabbarRender={tabbarRender}
220
+ currentConversationID={conversation?.conversationID || ''}
221
+ setModuleValue={setModuleValue}
222
+ />
223
+ ))}
205
224
  </div>
206
225
  </TUIKitProvider>
207
226
  );
@@ -1,4 +1,8 @@
1
1
  import React, { useState, useCallback, useEffect } from 'react';
2
+ import {
3
+ TUIStore,
4
+ StoreName,
5
+ } from '@tencentcloud/chat-uikit-engine';
2
6
  import { useTranslation } from 'react-i18next';
3
7
  import {
4
8
  ChatSDK,
@@ -42,7 +46,7 @@ export const useTUIKit = ({
42
46
  language,
43
47
  }:UseChatParams) => {
44
48
  const { i18n } = useTranslation();
45
- const [conversation, setConversation] = useState<Conversation>(paramsActiveConversation);
49
+ const [conversation, setConversation] = useState<Conversation | undefined>(paramsActiveConversation);
46
50
  const [myProfile, setMyProfile] = useState<Profile>();
47
51
  const [TUIManageShow, setTUIManageShow] = useState<boolean>(false);
48
52
  const [TUIProfileShow, setTUIProfileShow] = useState<boolean>(false);
@@ -50,21 +54,21 @@ export const useTUIKit = ({
50
54
 
51
55
  useEffect(() => {
52
56
  i18n.changeLanguage(language);
53
- const getMyProfile = async () => {
54
- const res = await chat?.getMyProfile();
55
- setMyProfile(res?.data);
56
- };
57
- getMyProfile();
58
- }, [chat, language]);
57
+ TUIStore.watch(StoreName.USER, {
58
+ userProfile: (userProfileData: any) => {
59
+ setMyProfile(userProfileData);
60
+ },
61
+ });
62
+ }, [language]);
59
63
  const setActiveConversation = useCallback(
60
64
  (activeConversation?: Conversation) => {
61
65
  if (activeConversation) {
62
66
  chat?.setMessageRead({ conversationID: activeConversation.conversationID });
63
67
  }
64
- if (conversation && (activeConversation.conversationID !== conversation.conversationID)) {
68
+ if (conversation && (activeConversation?.conversationID !== conversation.conversationID)) {
65
69
  setTUIManageShow(false);
66
70
  }
67
- setConversation(activeConversation);
71
+ activeConversation && setConversation(activeConversation);
68
72
  },
69
73
  [chat],
70
74
  );
@@ -73,7 +77,7 @@ export const useTUIKit = ({
73
77
  };
74
78
 
75
79
  useEffect(() => {
76
- setConversation(paramsActiveConversation);
80
+ paramsActiveConversation && setConversation(paramsActiveConversation);
77
81
  }, [paramsActiveConversation]);
78
82
  return {
79
83
  conversation,
@@ -1,5 +1,6 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { useTranslation } from 'react-i18next';
3
+ import { Conversation} from '@tencentcloud/chat';
3
4
  import './styles/index.scss';
4
5
  import { Icon, IconTypes } from '../Icon';
5
6
  import { Avatar, defaultGroupAvatarWork, defaultUserAvatar } from '../Avatar';
@@ -10,11 +11,13 @@ import { getMessageProfile } from '../ConversationPreview/utils';
10
11
  import { useConversationUpdate } from '../TUIConversationList/hooks/useConversationUpdate';
11
12
  import { useConversation } from '../../hooks';
12
13
 
13
- export function TUIManage() {
14
+
15
+ function UnMemoizedTUIManage<T>(
16
+ ):React.ReactElement {
14
17
  const { t } = useTranslation();
15
- const [conversation, setConversation] = useState(null);
16
- const [profile, setProfile] = useState(null);
17
- const [isPinned, setIsPinned] = useState(false);
18
+ const [conversation, setConversation] = useState<Conversation>();
19
+ const [profile, setProfile] = useState<any>();
20
+ const [isPinned, setIsPinned] = useState<boolean>(false);
18
21
  const [forceUpdateCount, setForceUpdateCount] = useState(0);
19
22
  const {
20
23
  conversation: activeConversation,
@@ -23,30 +26,31 @@ export function TUIManage() {
23
26
  TUIManageShow,
24
27
  setTUIManageShow,
25
28
  } = useTUIKitContext('TUIManage');
26
- useConversationUpdate(null, () => {
29
+ useConversationUpdate(undefined, () => {
27
30
  setForceUpdateCount((count) => count + 1);
28
31
  });
29
32
  const { pinConversation, deleteConversation } = useConversation(chat);
30
- const pinChatChange = (e) => {
33
+ const pinChatChange = (e: React.ChangeEvent<HTMLInputElement>) => {
31
34
  setIsPinned(e.target.checked);
32
- pinConversation({
35
+ conversation?.conversationID && pinConversation({
33
36
  conversationID: conversation.conversationID,
34
37
  isPinned: e.target.checked,
35
38
  });
36
39
  };
37
40
  const handleDelete = () => {
38
- deleteConversation(conversation.conversationID);
39
- setActiveConversation(null);
41
+ conversation?.conversationID && deleteConversation(conversation.conversationID);
42
+ setActiveConversation(undefined);
40
43
  };
41
44
  const close = () => {
42
- setTUIManageShow(false);
45
+ setTUIManageShow && setTUIManageShow(false);
43
46
  };
44
47
  useEffect(() => {
45
48
  setConversation(activeConversation);
46
- setProfile(getMessageProfile(activeConversation));
49
+ activeConversation && setProfile(getMessageProfile(activeConversation));
47
50
  setIsPinned(activeConversation ? activeConversation.isPinned : false);
48
51
  }, [activeConversation, forceUpdateCount]);
49
-
52
+ // eslint-disable-next-line
53
+ // @ts-ignore
50
54
  return (
51
55
  TUIManageShow
52
56
  && activeConversation && (
@@ -91,7 +95,7 @@ export function TUIManage() {
91
95
  <div className="manage-handle-title">
92
96
  {t('TUIConversation.Pin')}
93
97
  </div>
94
- <Switch onChange={pinChatChange} checked={isPinned} />
98
+ <Switch onChange={(e: any)=> {pinChatChange(e)}} checked={isPinned} />
95
99
  </div>
96
100
  {isPC && (
97
101
  <div
@@ -110,3 +114,6 @@ export function TUIManage() {
110
114
  )
111
115
  );
112
116
  }
117
+
118
+ export const TUIManage = React.memo(UnMemoizedTUIManage) as unknown as
119
+ typeof UnMemoizedTUIManage;
@@ -24,7 +24,7 @@ function MessageAudioWithContext <T extends MessageContextProps>(
24
24
  if (audioSource && audioSource !== audioRef?.current) {
25
25
  audioSource.pause();
26
26
  audioSource.currentTime = 0;
27
- setAudioSource(null);
27
+ setAudioSource && setAudioSource(null);
28
28
  }
29
29
  if (audioRef?.current) {
30
30
  if (!audioRef.current.paused) {
@@ -33,7 +33,7 @@ function MessageAudioWithContext <T extends MessageContextProps>(
33
33
  } else {
34
34
  audioRef.current.play();
35
35
  setPlayClassName(true);
36
- setAudioSource(audioRef.current);
36
+ setAudioSource && setAudioSource(audioRef.current);
37
37
  }
38
38
  }
39
39
  }, [audioRef, audioSource]);
@@ -42,8 +42,10 @@ function MessageAudioWithContext <T extends MessageContextProps>(
42
42
  setPlayClassName(false);
43
43
  };
44
44
  const endFunction = () => {
45
- setAudioSource(null);
46
- audioRef.current.currentTime = 0;
45
+ setAudioSource && setAudioSource(null);
46
+ if(audioRef.current) {
47
+ audioRef.current.currentTime = 0
48
+ }
47
49
  pauseFunction();
48
50
  };
49
51
 
@@ -52,7 +54,7 @@ function MessageAudioWithContext <T extends MessageContextProps>(
52
54
  audioRef.current.addEventListener('pause', pauseFunction);
53
55
  audioRef.current.addEventListener('ended', endFunction);
54
56
  audioRef.current.addEventListener('canplay', () => {
55
- setCurrentTime(parseInt(`${audioRef.current.duration}`, 10));
57
+ setCurrentTime(parseInt(`${audioRef.current?.duration}`, 10));
56
58
  });
57
59
  }
58
60
  return () => {
@@ -65,7 +67,7 @@ function MessageAudioWithContext <T extends MessageContextProps>(
65
67
 
66
68
  return (
67
69
  <div className="message-audio">
68
- <div className={`message-audio-content message-audio-${message.flow}`}>
70
+ <div className={`message-audio-content message-audio-${message?.flow}`}>
69
71
  <Icon className={`${message?.flow} ${playClassName ? 'playing' : ''}`} type={IconTypes.VOICE} width={16} height={16} onClick={play} />
70
72
  <span>{`${currentTime}s`}</span>
71
73
  </div>
@@ -10,7 +10,7 @@ import { handleDisplayAvatar } from '../untils';
10
10
  export interface MessageAvatarProps {
11
11
  CustomAvatar?: React.ReactElement,
12
12
  className?: string,
13
- message?: Message,
13
+ message: Message,
14
14
  showType?: messageShowType,
15
15
  }
16
16
 
@@ -27,7 +27,7 @@ export function MessageAvatar <T extends MessageAvatarProps>(
27
27
  const show = showType === messageShowType.ALL || message?.flow === showType;
28
28
 
29
29
  if (!show || showType === messageShowType.NONE) {
30
- return null;
30
+ return <></>;
31
31
  }
32
32
 
33
33
  if (CustomAvatar) {