@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
@@ -47,26 +47,28 @@ function MessageBubbleWithContext <T extends MessageBubbleProps>(
47
47
  ) && message?.status === MESSAGE_STATUS.UNSEND);
48
48
 
49
49
  const handleMouseEnter = () => {
50
- setActiveMessageID(message.ID);
50
+ setActiveMessageID && message && setActiveMessageID(message?.ID);
51
51
  setPluginsShow(true);
52
52
  };
53
53
  const handleMouseLeave = () => {
54
- setActiveMessageID(message.ID);
54
+ setActiveMessageID && message && setActiveMessageID(message.ID);
55
55
  setPluginsShow(false);
56
56
  };
57
57
 
58
58
  const activeMessage = () => {
59
- setActiveMessageID(message.ID);
59
+ setActiveMessageID && message && setActiveMessageID(message.ID);
60
60
  };
61
61
 
62
62
  useEffect(() => {
63
- if (activeMessageID !== message.ID) {
63
+ if (activeMessageID !== message?.ID) {
64
64
  setPluginsShow(false);
65
65
  }
66
66
  }, [activeMessageID]);
67
67
 
68
68
  const handleReplyMessage = () => {
69
- setHighlightedMessageId(replyMessage?.ID);
69
+ // eslint-disable-next-line
70
+ // @ts-ignore
71
+ setHighlightedMessageId && setHighlightedMessageId(replyMessage?.ID);
70
72
  };
71
73
 
72
74
  return (
@@ -15,7 +15,7 @@ import { useMessageContextHandler } from './hooks';
15
15
  import { MessageStatus } from './MessageStatus';
16
16
  import { useTUIMessageContext } from '../../context';
17
17
 
18
- const components = {
18
+ const components: any = {
19
19
  [TencentCloudChat.TYPES.MSG_TEXT]: MessageText,
20
20
  [TencentCloudChat.TYPES.MSG_FACE]: MessageFace,
21
21
  [TencentCloudChat.TYPES.MSG_IMAGE]: MessageImage,
@@ -51,7 +51,7 @@ function MessageContextWithContext <T extends MessageContextProps>(
51
51
  LocationElement,
52
52
  } = useTUIMessageContext('MessageCustom');
53
53
 
54
- const CustemComponents = {
54
+ const CustemComponents: any = {
55
55
  [TencentCloudChat.TYPES.MSG_TEXT]: TextElement,
56
56
  [TencentCloudChat.TYPES.MSG_FACE]: FaceElement,
57
57
  [TencentCloudChat.TYPES.MSG_IMAGE]: ImageElement,
@@ -63,7 +63,7 @@ function MessageContextWithContext <T extends MessageContextProps>(
63
63
  [TencentCloudChat.TYPES.MSG_LOCATION]: LocationElement,
64
64
  };
65
65
 
66
- const Elements = CustemComponents[message?.type] || components[message?.type];
66
+ const Elements = message?.type && (CustemComponents[message.type] || components[message.type]);
67
67
  return Elements
68
68
  && (
69
69
  <Elements context={context} message={message}>
@@ -15,11 +15,11 @@ function MessageCustomWithContext <T extends MessageContextProps>(
15
15
  } = props;
16
16
  const { t } = useTranslation();
17
17
  const { MessageCustomPlugins } = useComponentContext('MessageCustom');
18
- const handleContext = (data) => {
18
+ const handleContext = (data: any) => {
19
19
  if (data.data === 'Hyperlink') {
20
20
  const extension = JSONStringToParse(data?.extension);
21
21
  if (extension?.item) {
22
- return extension?.item.map((item) => <a target="_blank" key={item.value} href={item.value} rel="noreferrer">{item.value}</a>);
22
+ return extension?.item.map((item: any) => <a target="_blank" key={item.value} href={item.value} rel="noreferrer">{item.value}</a>);
23
23
  }
24
24
  if (extension?.hyperlinks_text) {
25
25
  const hyperlinks = extension.hyperlinks_text;
@@ -38,6 +38,8 @@ function MessageCustomWithContext <T extends MessageContextProps>(
38
38
  const botMessage = JSONStringToParse(data.data);
39
39
  if (botMessage?.chatbotPlugin === 1 && botMessage?.src === 15 && (botMessage?.subtype === 'welcome_msg' || botMessage?.subtype === 'clarify_msg')) {
40
40
  return (
41
+ // eslint-disable-next-line
42
+ // @ts-ignore
41
43
  <MessageCustomPlugins data={JSONStringToParse(data.data).content} />
42
44
  );
43
45
  }
@@ -45,7 +47,7 @@ function MessageCustomWithContext <T extends MessageContextProps>(
45
47
  };
46
48
 
47
49
  return (
48
- <div className={`bubble message-custom bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
50
+ <div className={`bubble message-custom bubble-${message?.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
49
51
  {handleContext(context?.custom)}
50
52
  {children}
51
53
  </div>
@@ -11,8 +11,8 @@ function MessageFaceWithContext <T extends MessageContextProps>(
11
11
  } = props;
12
12
 
13
13
  return (
14
- <div className={`bubble message-face bubble-${message.flow}`}>
15
- <img className="img" src={context.url} alt="" />
14
+ <div className={`bubble message-face bubble-${message?.flow}`}>
15
+ <img className="img" src={context?.url} alt="" />
16
16
  {children}
17
17
  </div>
18
18
  );
@@ -13,18 +13,18 @@ function MessageFileWithContext <T extends MessageContextProps>(
13
13
  } = props;
14
14
  return (
15
15
  <a
16
- href={context.url}
17
- download={context.name}
16
+ href={context?.url}
17
+ download={context?.name}
18
18
  target="_parent"
19
- className={`bubble message-file bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}
19
+ className={`bubble message-file bubble-${message?.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}
20
20
  rel="noreferrer"
21
21
  >
22
22
  <main className="message-file-main">
23
23
  <Icon className="icon" width={15} height={20} type={IconTypes.FILE} />
24
- <label htmlFor="message-file">{ context.name }</label>
24
+ <label htmlFor="message-file">{ context?.name }</label>
25
25
  </main>
26
26
  <div className="message-file-footer">
27
- <span className="message-file-size">{ context.size }</span>
27
+ <span className="message-file-size">{ context?.size }</span>
28
28
  {children}
29
29
  </div>
30
30
  </a>
@@ -15,12 +15,14 @@ function MessageImageWithContext <T extends MessageContextProps>(
15
15
 
16
16
  const [show, setShow] = useState(false);
17
17
 
18
- const bigImageInfo = message?.payload?.imageInfoArray?.filter((item) => item.type === 0);
18
+ const bigImageInfo = message?.payload?.imageInfoArray?.filter((item: any) => item.type === 0);
19
19
 
20
20
  return (
21
21
  <div className="message-image">
22
22
  <div role="button" tabIndex={0} onClick={() => { setShow(true); }}>
23
- <img className={`img ${isH5 ? 'img-h5' : ''} bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`} src={context.url} alt="" />
23
+ <img className={`img ${isH5 ? 'img-h5' : ''} bubble-${message?.flow}
24
+ ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}
25
+ src={context?.url} alt="" />
24
26
  </div>
25
27
  {children}
26
28
  {
@@ -11,9 +11,9 @@ function MessageLocationWithContext <T extends MessageContextProps>(
11
11
  } = props;
12
12
 
13
13
  return (
14
- <a className="bubble message-location" href={context.href} target="_blank" title="点击查看详情" rel="noreferrer">
15
- <span>{context.description}</span>
16
- <img src={context.url} alt="" />
14
+ <a className="bubble message-location" href={context?.href} target="_blank" title="点击查看详情" rel="noreferrer">
15
+ <span>{context?.description}</span>
16
+ <img src={context?.url} alt="" />
17
17
  {children}
18
18
  </a>
19
19
  );
@@ -12,12 +12,12 @@ function MessageMergerWithContext <T extends MessageContextProps>(
12
12
  } = props;
13
13
 
14
14
  return (
15
- <div className={`bubble message-merger bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
16
- <h3>{context.title}</h3>
15
+ <div className={`bubble message-merger bubble-${message?.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
16
+ <h3>{context?.title}</h3>
17
17
  <ul className="message-merger-list">
18
18
  {
19
19
  context?.abstractList.length > 0
20
- && context.abstractList.map((item:string, index:number) => {
20
+ && context?.abstractList.map((item:string, index:number) => {
21
21
  const key = item + index;
22
22
  return (<li className="message-merger-item" key={key}>{item}</li>);
23
23
  })
@@ -26,7 +26,7 @@ export function MessageName <T extends MessageNameProps>(
26
26
  && message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP;
27
27
 
28
28
  if (!show || showType === messageShowType.NONE) {
29
- return null;
29
+ return <></>;
30
30
  }
31
31
 
32
32
  if (CustomName) {
@@ -4,6 +4,7 @@ import TencentCloudChat from '@tencentcloud/chat';
4
4
  import './styles/index.scss';
5
5
 
6
6
  import { Plugins, PluginsProps } from '../Plugins';
7
+ import { IPluginsRef } from '../ConversationPreview';
7
8
  import { Icon, IconTypes } from '../Icon';
8
9
  import { useTUIChatStateContext, useTUIMessageContext } from '../../context';
9
10
  import { useMessagePluginElement, useMessageHandler } from './hooks';
@@ -41,7 +42,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
41
42
  const { t } = useTranslation();
42
43
  const [className, setClassName] = useState('');
43
44
  const [popStyle, setPopStyle] = useState({});
44
- const pluginsRef = useRef(null);
45
+ const pluginsRef = useRef<IPluginsRef>();
45
46
 
46
47
  const { message, plugin: contextPlugin } = useTUIMessageContext('MessagePlugins');
47
48
  const { messageListRef } = useTUIChatStateContext('MessageBubbleWithContext');
@@ -88,7 +89,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
88
89
  },
89
90
  };
90
91
 
91
- const handleVisible = (data) => {
92
+ const handleVisible = (data: any) => {
92
93
  if (data.x && data.y) {
93
94
  const isTop = data.y < data.height ? true : data.top;
94
95
  const isLeft = data.x < data.width ? true : data.left;
@@ -108,7 +109,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
108
109
  </div>
109
110
  ),
110
111
  handle: (e) => {
111
- pluginsRef.current.closeMore();
112
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
112
113
  handleRevokeMessage(e);
113
114
  },
114
115
  message,
@@ -125,7 +126,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
125
126
  </div>
126
127
  ),
127
128
  handle: (e) => {
128
- pluginsRef.current.closeMore();
129
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
129
130
  handleDelMessage(e);
130
131
  },
131
132
  message,
@@ -141,7 +142,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
141
142
  </div>
142
143
  ),
143
144
  handle: (e) => {
144
- pluginsRef.current.closeMore();
145
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
145
146
  handleReplyMessage(e);
146
147
  },
147
148
  message,
@@ -157,7 +158,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
157
158
  </div>
158
159
  ),
159
160
  handle: (e) => {
160
- pluginsRef.current.closeMore();
161
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
161
162
  handleCopyMessage(e);
162
163
  },
163
164
  message,
@@ -173,8 +174,8 @@ export function MessagePlugins <T extends MessagePluginsProps>(
173
174
  </div>
174
175
  ),
175
176
  handle: (e) => {
176
- pluginsRef.current.closeMore();
177
- handleResendMessage(e);
177
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
178
+ handleResendMessage();
178
179
  },
179
180
  message,
180
181
  isShow: pluginConfig.resend.isShow && message?.status !== MESSAGE_STATUS.SUCCESS,
@@ -189,7 +190,7 @@ export function MessagePlugins <T extends MessagePluginsProps>(
189
190
  </div>
190
191
  ),
191
192
  handle: (e) => {
192
- pluginsRef.current.closeMore();
193
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
193
194
  handleForWardMessage(e);
194
195
  },
195
196
  message,
@@ -211,7 +212,8 @@ export function MessagePlugins <T extends MessagePluginsProps>(
211
212
  const MoreIcon = propsMoreIcon || contextPlugin?.MoreIcon || <Icon className="icon-more" width={16} height={16} type={IconTypes.MORE} />;
212
213
 
213
214
  const showNumber = propsShowNumber || contextPlugin?.showNumber || 0;
214
-
215
+ // eslint-disable-next-line
216
+ // @ts-ignore
215
217
  return message?.status !== MESSAGE_STATUS.UNSEND && (
216
218
  <Plugins
217
219
  className="message-plugin"
@@ -48,7 +48,7 @@ function MessageProgressWithContext <T extends MessageProgressProps>(
48
48
  uploadPendingMessageList.map((item:MessageProgressItem) => {
49
49
  if (item?.ID === message?.ID) {
50
50
  setProgressMessage(item);
51
- setProgress(item?.progress);
51
+ item?.progress && setProgress(item.progress);
52
52
  }
53
53
  return item;
54
54
  });
@@ -56,13 +56,14 @@ function MessageProgressWithContext <T extends MessageProgressProps>(
56
56
  }, [uploadPendingMessageList]);
57
57
 
58
58
  if (!isShow) {
59
- return null;
59
+ return <></>;
60
60
  }
61
61
 
62
- if (Progress) {
62
+ if (Progress && progressMessage) {
63
63
  return <Progress message={progressMessage} />;
64
64
  }
65
-
65
+ // eslint-disable-next-line
66
+ // @ts-ignore
66
67
  return handleLoading() && (
67
68
  <div className="progress-box">
68
69
  <span
@@ -15,7 +15,7 @@ function MessageRevokeWithContext <T extends MessageContextProps>(
15
15
  const { operateMessage } = useTUIChatActionContext('MessageRevokeWithContext');
16
16
 
17
17
  const handleRevoke = useCallback(() => {
18
- operateMessage({
18
+ operateMessage && message && operateMessage({
19
19
  [MESSAGE_OPERATE.REVOKE]: message,
20
20
  });
21
21
  }, [operateMessage]);
@@ -18,7 +18,7 @@ function MessageTextWithContext <T extends MessageContextProps>(
18
18
  } = props;
19
19
  const { MessageTextPlugins } = useComponentContext('MessageText');
20
20
  const { firstSendMessage } = useTUIChatStateContext('MessageText');
21
- if (MessageTextPlugins && message.flow === 'in' && (firstSendMessage?.time <= message?.time)) {
21
+ if (MessageTextPlugins && message?.flow === 'in' && (firstSendMessage && firstSendMessage?.time <= message?.time)) {
22
22
  return (
23
23
  <div className={`bubble message-text bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
24
24
  <MessageTextPlugins data={message} />
@@ -34,10 +34,10 @@ function MessageTextWithContext <T extends MessageContextProps>(
34
34
  return text.replace(urlRegex, (website) => `<a class='website' href='${website}' target='_blank'>${website}</a>`);
35
35
  };
36
36
  return (
37
- <div className={`bubble message-text bubble-${message.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
37
+ <div className={`bubble message-text bubble-${message?.flow} ${message?.conversationType === TencentCloudChat.TYPES.CONV_GROUP ? 'group' : ''}`}>
38
38
  <div className="message-text-content">
39
- {context.text.map((item, index) => {
40
- const key = message.ID + index;
39
+ {context?.text.map((item: any, index: number) => {
40
+ const key = message && message?.ID + index;
41
41
  if (item.name === 'text') {
42
42
  return (
43
43
  <p
@@ -19,15 +19,15 @@ function MessageVideoWithContext <T extends MessageContextProps>(
19
19
  return (
20
20
  <div className={`message-video ${isH5 ? 'message-video-h5' : ''}`}>
21
21
  <div className={`${message?.status === MESSAGE_STATUS.SUCCESS ? 'snap-video' : ''}`} role="button" tabIndex={0} onClick={() => { setShow(true); }}>
22
- {isPC && (<video muted controls={false} src={context.url} />)}
23
- {isH5 && (<img src={message.payload.snapshotUrl || transparentPosterUrl} style={{ maxHeight: '200px', maxWidth: '200px', borderRadius: '10px' }} />)}
22
+ {isPC && (<video muted controls={false} src={context?.url} />)}
23
+ {isH5 && (<img src={message?.payload.snapshotUrl || transparentPosterUrl} style={{ maxHeight: '200px', maxWidth: '200px', borderRadius: '10px' }} />)}
24
24
  </div>
25
25
 
26
26
  {children}
27
27
  {
28
28
  show && (
29
29
  <Model onClick={(e) => { e.stopPropagation(); setShow(false); }}>
30
- <video className="play-video" autoPlay controls src={context.url} />
30
+ <video className="play-video" autoPlay controls src={context?.url} />
31
31
  </Model>
32
32
  )
33
33
  }
@@ -92,7 +92,7 @@ function TUIMessageWithContext <T extends TUIMessageProps>(
92
92
 
93
93
  const filter = propsFilter || messageConfig?.filter;
94
94
  const message = propsMessage || messageConfig?.message;
95
- if (filter) {
95
+ if (filter && message) {
96
96
  filter(message);
97
97
  }
98
98
 
@@ -69,7 +69,7 @@ function TUIMessageDefaultWithContext <T extends TUIMessageProps>(
69
69
  key={message?.ID}
70
70
  >
71
71
  {prefix}
72
- <MessageAvatar message={message} CustomAvatar={customAvatar} showType={showAvatar} />
72
+ {message && <MessageAvatar message={message} CustomAvatar={customAvatar} showType={showAvatar} />}
73
73
  <main data-message-id={message?.ID} className="content">
74
74
  <MessageName message={message} CustomName={customName} showType={showName} />
75
75
  <MessageBubble
@@ -77,6 +77,8 @@ function TUIMessageDefaultWithContext <T extends TUIMessageProps>(
77
77
  Context={MessageContextUIComponent}
78
78
  Plugins={MessagePlugins}
79
79
  >
80
+ {/* // eslint-disable-next-line
81
+ // @ts-ignore */}
80
82
  <MessageContextUIComponent message={message} />
81
83
  </MessageBubble>
82
84
  </main>
@@ -8,11 +8,11 @@ import { useTUIChatActionContext, useTUIKitContext } from '../../../context';
8
8
  import { Toast } from '../../Toast';
9
9
 
10
10
  interface MessageHandlerProps {
11
- handleError?: (error) => void,
11
+ handleError?: (error: any) => void,
12
12
  message?: Message,
13
13
  }
14
14
 
15
- export const useMessageHandler = (props?: MessageHandlerProps) => {
15
+ export const useMessageHandler = (props: MessageHandlerProps) => {
16
16
  const {
17
17
  message,
18
18
  handleError,
@@ -26,19 +26,19 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
26
26
  const { t } = useTranslation();
27
27
  const { chat } = useTUIKitContext('useDeleteHandler');
28
28
 
29
- const handleDelMessage = useCallback(async (event?) => {
29
+ const handleDelMessage = useCallback(async (event?: any) => {
30
30
  event.preventDefault();
31
31
  if (!message) return;
32
32
  const messageModel = TUIStore.getMessageModel(message?.ID);
33
33
  messageModel.deleteMessage();
34
34
  }, [message]);
35
35
 
36
- const handleRevokeMessage = useCallback(async (event?) => {
36
+ const handleRevokeMessage = useCallback(async (event?: any) => {
37
37
  event.preventDefault();
38
38
  if (!message) return;
39
39
  const messageModel = TUIStore.getMessageModel(message?.ID);
40
40
  messageModel.revokeMessage().then(() => {
41
- editLocalMessage(message);
41
+ editLocalMessage && editLocalMessage(message);
42
42
  enableSampleTaskStatus('revokeMessage');
43
43
  }).catch((error: any) => {
44
44
  if (handleError) {
@@ -54,7 +54,7 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
54
54
  });
55
55
  }, [message]);
56
56
 
57
- const handleReplyMessage = useCallback((event?) => {
57
+ const handleReplyMessage = useCallback((event?:any) => {
58
58
  event.preventDefault();
59
59
  if (!message?.ID || !chat || !operateMessage) {
60
60
  return;
@@ -64,11 +64,11 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
64
64
  });
65
65
  }, [message]);
66
66
 
67
- const handleCopyMessage = useCallback((event?) => {
67
+ const handleCopyMessage = useCallback((event?:any) => {
68
68
  event.preventDefault();
69
69
  if (navigator.clipboard) {
70
70
  // clipboard api
71
- navigator.clipboard.writeText(message.payload.text);
71
+ navigator.clipboard.writeText(message?.payload.text);
72
72
  } else {
73
73
  const textarea = document.createElement('textarea');
74
74
  document.body.appendChild(textarea);
@@ -76,7 +76,7 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
76
76
  textarea.style.position = 'fixed';
77
77
  textarea.style.clip = 'rect(0 0 0 0)';
78
78
  textarea.style.top = '10px';
79
- textarea.value = message.payload.text;
79
+ textarea.value = message?.payload.text;
80
80
  // select
81
81
  textarea.select();
82
82
  // copy
@@ -86,10 +86,10 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
86
86
  }
87
87
  }, [message]);
88
88
 
89
- const handleResendMessage = useCallback(async (event?) => {
89
+ const handleResendMessage = useCallback(async () => {
90
90
  try {
91
- const res = await chat.resendMessage(message);
92
- editLocalMessage(res?.data?.message);
91
+ const res = message && await chat.resendMessage(message);
92
+ editLocalMessage && editLocalMessage(res?.data?.message);
93
93
  } catch (error: any) {
94
94
  if (handleError) {
95
95
  handleError({
@@ -103,7 +103,7 @@ export const useMessageHandler = (props?: MessageHandlerProps) => {
103
103
  }
104
104
  }, [message]);
105
105
 
106
- const handleForWardMessage = useCallback(async (event?) => {
106
+ const handleForWardMessage = useCallback(async (event?:any) => {
107
107
  event.preventDefault();
108
108
  if (!message?.ID || !chat || !operateMessage) {
109
109
  return;
@@ -7,7 +7,7 @@ interface messageContextParams {
7
7
  message?: Message,
8
8
  }
9
9
 
10
- const replyType = {
10
+ const replyType: any = {
11
11
  [TencentCloudChat.TYPES.MSG_TEXT]: 1,
12
12
  [TencentCloudChat.TYPES.MSG_FACE]: 8,
13
13
  [TencentCloudChat.TYPES.MSG_IMAGE]: 3,
@@ -30,14 +30,14 @@ export const useMessageReply = <T extends messageContextParams>(params:T) => {
30
30
  const { messageList } = useTUIChatStateContext('useMessageReply');
31
31
 
32
32
  useLayoutEffect(() => {
33
- handleMessageReply(message);
33
+ message && handleMessageReply(message);
34
34
  }, [message]);
35
35
 
36
36
  const handleMessageReply = (data:Message) => {
37
37
  if (!data?.cloudCustomData) {
38
38
  return;
39
39
  }
40
- const cloudCustomData = JSONStringToParse(message?.cloudCustomData);
40
+ const cloudCustomData = JSONStringToParse(data?.cloudCustomData);
41
41
  const reply = cloudCustomData?.messageReply || '';
42
42
  if (!reply) {
43
43
  return;
@@ -45,13 +45,15 @@ export const useMessageReply = <T extends messageContextParams>(params:T) => {
45
45
  setMessageReply(reply);
46
46
  setSender(reply?.messageSender);
47
47
  setMessageID(reply?.messageID);
48
- const replyData = messageList.filter((item) => {
48
+ const replyData = messageList?.filter((item) => {
49
49
  const isSomeID = item.ID === reply?.messageID;
50
50
  const isSomeType = isSomeID && replyType[item.type] === reply.messageType;
51
51
  const isSomeContent = item.type === TencentCloudChat.TYPES.MSG_TEXT
52
52
  ? item.payload.text === reply.messageAbstract : true;
53
53
  return isSomeID && isSomeType && isSomeContent;
54
54
  });
55
+ // eslint-disable-next-line
56
+ // @ts-ignore
55
57
  setReplyMessage(replyData[0] || chat.findMessage(reply?.messageID));
56
58
  };
57
59
 
@@ -1,15 +1,14 @@
1
1
  import { emojiMap, emojiUrl } from './emojiMap';
2
- /** 传入messageBody(群系统消息SystemMessage,群提示消息GroupTip除外)
2
+ /** Pass in messageBody (group system message SystemMessage, except group prompt message GroupTip
3
3
  * payload = {
4
4
  * msgType: 'TIMTextElem',
5
5
  * msgContent: {
6
- * text: 'AAA[龇牙]AAA[龇牙]AAA[龇牙AAA]'
6
+ * text: 'AAA[smile]AAA[smile]AAA[smile]'
7
7
  * }
8
8
  *}
9
9
  * */
10
10
  export function decodeText(payload:any) {
11
11
  const renderDom = [];
12
- // 文本消息
13
12
  let temp = payload.text;
14
13
  let left = -1;
15
14
  let right = -1;
@@ -138,7 +138,6 @@ export function handleTipMessageShowContext(message: Message) {
138
138
  options.text = `${t('message.tip.member')}:${userName} ${t('message.tip.by revoked administrator')}`;
139
139
  break;
140
140
  case TencentCloudChat.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:
141
- // options.text = `${userName} 修改群组资料`;
142
141
  options.text = handleTipGrpUpdated(message);
143
142
  break;
144
143
  case TencentCloudChat.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:
@@ -448,7 +447,7 @@ export function formatTime(secondTime:number) {
448
447
  if (time >= 3600) {
449
448
  hour = parseInt(`${time / 3600}`, 10) < 10 ? `0${parseInt(`${time / 3600}`, 10)}` : parseInt(`${time / 3600}`, 10);
450
449
  minite = parseInt(`${(time % 60) / 60}`, 10) < 10 ? `0${parseInt(`${(time % 60) / 60}`, 10)}` : parseInt(`${(time % 60) / 60}`, 10);
451
- seconds = time % 3600 < 10 ? `0${time % 3600}` : time % 3600;
450
+ seconds = time % 3600 < 10 ? parseInt(`0${time % 3600}`) : time % 3600;
452
451
  if (seconds > 60) {
453
452
  minite = parseInt(`${seconds / 60}`, 10) < 10 ? `0${parseInt(`${seconds / 60}`, 10)}` : parseInt(`${seconds / 60}`, 10);
454
453
  seconds = seconds % 60 < 10 ? `0${seconds % 60}` : seconds % 60;
@@ -22,7 +22,7 @@ export function EmojiPicker():React.ReactElement {
22
22
  sendFaceMessage,
23
23
  } = useTUIMessageInputContext('TUIMessageInputDefault');
24
24
 
25
- const handleSelectEmoji = (e) => {
25
+ const handleSelectEmoji = (e: any) => {
26
26
  const emoji: EmojiData = {
27
27
  index,
28
28
  data: e.target.dataset.data,
@@ -31,14 +31,14 @@ export function EmojiPicker():React.ReactElement {
31
31
  return;
32
32
  }
33
33
  if (index === 0) {
34
- onSelectEmoji(emoji);
34
+ onSelectEmoji && onSelectEmoji(emoji);
35
35
  } else {
36
- sendFaceMessage(emoji);
36
+ sendFaceMessage && sendFaceMessage(emoji);
37
37
  handleShow();
38
38
  }
39
39
  };
40
40
 
41
- const handleVisible = (data) => {
41
+ const handleVisible = (data: any) => {
42
42
  setClassName(`${!data.top && 'emoji-plugin-top'} ${!data.left && 'emoji-plugin-right'}`);
43
43
  };
44
44
 
@@ -4,12 +4,12 @@ import './styles/index.scss';
4
4
 
5
5
  import { EmojiPicker } from './EmojiPicker';
6
6
  import { Plugins } from '../Plugins';
7
+ import { IPluginsRef } from '../ConversationPreview';
7
8
  import { useUploadElement } from './hooks/useUploadElement';
8
9
  import { MESSAGE_TYPE_NAME } from '../../constants';
9
10
  import { useTUIMessageInputContext } from '../../context/TUIMessageInputContext';
10
11
  import { Icon, IconTypes } from '../Icon';
11
12
  import { useTUIChatStateContext } from '../../context';
12
-
13
13
  export function InputPluginsDefalut():React.ReactElement {
14
14
  const {
15
15
  sendUploadMessage,
@@ -60,7 +60,7 @@ export function InputPluginsDefalut():React.ReactElement {
60
60
  true,
61
61
  );
62
62
 
63
- const pluginsRef = useRef(null);
63
+ const pluginsRef = useRef<IPluginsRef>();
64
64
 
65
65
  const ImagePicker = isImagePicker && useUploadElement({
66
66
  children: (
@@ -72,8 +72,8 @@ export function InputPluginsDefalut():React.ReactElement {
72
72
  type: 'image',
73
73
  accept: 'image/*',
74
74
  onChange: (file:HTMLInputElement | File) => {
75
- pluginsRef.current.closeMore();
76
- sendUploadMessage({ file }, MESSAGE_TYPE_NAME.IMAGE);
75
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
76
+ sendUploadMessage && sendUploadMessage({ file }, MESSAGE_TYPE_NAME.IMAGE);
77
77
  },
78
78
  });
79
79
 
@@ -87,8 +87,8 @@ export function InputPluginsDefalut():React.ReactElement {
87
87
  type: 'video',
88
88
  accept: 'video/*',
89
89
  onChange: (file:HTMLInputElement | File) => {
90
- pluginsRef.current.closeMore();
91
- sendUploadMessage({ file }, MESSAGE_TYPE_NAME.VIDEO);
90
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
91
+ sendUploadMessage && sendUploadMessage({ file }, MESSAGE_TYPE_NAME.VIDEO);
92
92
  },
93
93
  });
94
94
 
@@ -102,8 +102,8 @@ export function InputPluginsDefalut():React.ReactElement {
102
102
  type: 'file',
103
103
  accept: 'file/*',
104
104
  onChange: (file:HTMLInputElement | File) => {
105
- pluginsRef.current.closeMore();
106
- sendUploadMessage({ file }, MESSAGE_TYPE_NAME.FILE);
105
+ pluginsRef?.current?.closeMore && pluginsRef.current.closeMore();
106
+ sendUploadMessage && sendUploadMessage({ file }, MESSAGE_TYPE_NAME.FILE);
107
107
  },
108
108
  });
109
109
  const plugins = [