@tencentcloud/chat-uikit-react 0.0.2 → 1.0.0

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 (338) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +1 -0
  3. package/dist/cjs/components/Checkbox/index.d.ts +16 -0
  4. package/dist/cjs/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -1
  5. package/dist/cjs/components/ConversationCreate/ConversationCreate.js +1 -1
  6. package/dist/cjs/components/ConversationCreate/ConversationCreateUserSelectList.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.js +1 -1
  10. package/dist/cjs/components/ConversationPreview/utils.js +1 -1
  11. package/dist/cjs/components/ConversationSearch/ConversationSearchResult.js +1 -1
  12. package/dist/cjs/components/DivWithEdit/DivWithEdit.d.ts +16 -0
  13. package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +5 -1
  14. package/dist/cjs/components/Icon/Icon.d.ts +14 -0
  15. package/dist/cjs/components/Icon/config.js +1 -1
  16. package/dist/cjs/components/Icon/images/like.png.js +1 -0
  17. package/dist/cjs/components/Icon/images/liked.png.js +1 -0
  18. package/dist/cjs/components/Icon/images/living.png.js +1 -0
  19. package/dist/cjs/components/Icon/images/member.png.js +1 -0
  20. package/dist/cjs/components/Icon/images/owner.png.js +1 -0
  21. package/dist/cjs/components/Icon/images/send.png.js +1 -0
  22. package/dist/cjs/components/Icon/images/union.png.js +1 -0
  23. package/dist/cjs/components/Icon/images/unlike.png.js +1 -0
  24. package/dist/cjs/components/Icon/images/unliked.png.js +1 -0
  25. package/dist/cjs/components/Icon/images/ununion.png.js +1 -0
  26. package/dist/cjs/components/Icon/images/unvector.png.js +1 -0
  27. package/dist/cjs/components/Icon/images/vector.png.js +1 -0
  28. package/dist/cjs/components/Icon/images/voice.png.js +1 -0
  29. package/dist/cjs/components/Icon/type.d.ts +47 -0
  30. package/dist/cjs/components/Icon/type.js +1 -1
  31. package/dist/cjs/components/Input/Input.d.ts +7 -1
  32. package/dist/cjs/components/Model/index.d.ts +9 -0
  33. package/dist/cjs/components/Plugins/index.d.ts +17 -0
  34. package/dist/cjs/components/Plugins/index.js +1 -1
  35. package/dist/cjs/components/Popup/index.d.ts +12 -0
  36. package/dist/cjs/components/Switch/Switch.d.ts +16 -0
  37. package/dist/cjs/components/TUIChat/TUIChat.d.ts +8 -2
  38. package/dist/cjs/components/TUIChat/TUIChat.js +1 -1
  39. package/dist/cjs/components/TUIChat/TUIChatState.js +1 -1
  40. package/dist/cjs/components/TUIChat/hooks/useCreateMessage.d.ts +29 -1
  41. package/dist/cjs/components/TUIChat/hooks/useCreateMessage.js +1 -1
  42. package/dist/cjs/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -1
  43. package/dist/cjs/components/TUIChat/hooks/useHandleMessage.js +1 -1
  44. package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -1
  45. package/dist/cjs/components/TUIChat/hooks/useMessageReceviedListener.js +1 -1
  46. package/dist/cjs/components/TUIChat/unitls.js +1 -1
  47. package/dist/cjs/components/TUIChatHeader/TUIChatHeader.d.ts +2 -0
  48. package/dist/cjs/components/TUIChatHeader/TUIChatHeader.js +1 -1
  49. package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +7 -3
  50. package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
  51. package/dist/cjs/components/TUIConversationList/TUIConversationList.js +1 -1
  52. package/dist/cjs/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
  53. package/dist/cjs/components/TUIKit/TUIKit.d.ts +2 -1
  54. package/dist/cjs/components/TUIKit/TUIKit.js +1 -1
  55. package/dist/cjs/components/TUIKit/hooks/useTUIKit.d.ts +2 -1
  56. package/dist/cjs/components/TUIKit/hooks/useTUIKit.js +1 -1
  57. package/dist/cjs/components/TUILive/TUILive.d.ts +29 -0
  58. package/dist/cjs/components/TUILive/TUILive.js +1 -0
  59. package/dist/cjs/components/TUILive/TUILiveContent.d.ts +13 -0
  60. package/dist/cjs/components/TUILive/TUILiveContent.js +1 -0
  61. package/dist/cjs/components/TUILive/TUILiveFooter.d.ts +29 -0
  62. package/dist/cjs/components/TUILive/TUILiveFooter.js +1 -0
  63. package/dist/cjs/components/TUILive/TUILiveHeader.d.ts +20 -0
  64. package/dist/cjs/components/TUILive/TUILiveHeader.js +1 -0
  65. package/dist/cjs/components/TUILive/TUILiveMemberList.d.ts +11 -0
  66. package/dist/cjs/components/TUILive/TUILiveMemberList.js +1 -0
  67. package/dist/cjs/components/TUILive/hooks/useLiveAtiveElements.js +1 -0
  68. package/dist/cjs/components/TUILive/hooks/useLivePlayer.js +1 -0
  69. package/dist/cjs/components/TUILive/hooks/useLiveState.js +1 -0
  70. package/dist/cjs/components/TUILive/untils.js +1 -0
  71. package/dist/cjs/components/TUIManage/TUIManage.js +1 -1
  72. package/dist/cjs/components/TUIMessage/MessageAudio.js +1 -1
  73. package/dist/cjs/components/TUIMessage/MessageAvatar.js +1 -0
  74. package/dist/cjs/components/TUIMessage/MessageBubble.js +1 -1
  75. package/dist/cjs/components/TUIMessage/MessageContext.d.ts +3 -1
  76. package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -1
  77. package/dist/cjs/components/TUIMessage/MessageFile.js +1 -1
  78. package/dist/cjs/components/TUIMessage/MessageImage.js +1 -1
  79. package/dist/cjs/components/TUIMessage/MessageMerger.js +1 -1
  80. package/dist/cjs/components/TUIMessage/MessageName.js +1 -0
  81. package/dist/cjs/components/TUIMessage/MessagePlugins.d.ts +24 -0
  82. package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -1
  83. package/dist/cjs/components/TUIMessage/MessageProgress.js +1 -0
  84. package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -1
  85. package/dist/cjs/components/TUIMessage/MessageStatus.js +1 -1
  86. package/dist/cjs/components/TUIMessage/MessageSystem.js +1 -1
  87. package/dist/cjs/components/TUIMessage/MessageText.js +1 -1
  88. package/dist/cjs/components/TUIMessage/MessageTip.js +1 -1
  89. package/dist/cjs/components/TUIMessage/TUIMessage.d.ts +23 -3
  90. package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -1
  91. package/dist/cjs/components/TUIMessage/TUIMessageDefault.js +1 -1
  92. package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -1
  93. package/dist/cjs/components/TUIMessage/hooks/useMessagePluginElement.js +1 -1
  94. package/dist/cjs/components/TUIMessage/hooks/useMessageReply.js +1 -1
  95. package/dist/cjs/components/TUIMessage/utils/emojiMap.js +1 -1
  96. package/dist/cjs/components/TUIMessage/utils/index.js +1 -1
  97. package/dist/cjs/components/TUIMessageInput/EmojiPicker.js +1 -1
  98. package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.js +1 -1
  99. package/dist/cjs/components/TUIMessageInput/InputQuoteDefalut.js +1 -1
  100. package/dist/cjs/components/TUIMessageInput/TUIForward.js +1 -1
  101. package/dist/cjs/components/TUIMessageInput/TUIMessageInput.d.ts +18 -7
  102. package/dist/cjs/components/TUIMessageInput/TUIMessageInput.js +1 -1
  103. package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
  104. package/dist/cjs/components/TUIMessageInput/Transmitter.js +1 -0
  105. package/dist/cjs/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -1
  106. package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
  107. package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
  108. package/dist/cjs/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
  109. package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.js +1 -1
  110. package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
  111. package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.js +1 -1
  112. package/dist/cjs/components/TUIMessageList/TUIMessageList.d.ts +3 -1
  113. package/dist/cjs/components/TUIMessageList/TUIMessageList.js +1 -1
  114. package/dist/cjs/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
  115. package/dist/cjs/components/TUIProfile/TUIProfile.js +1 -1
  116. package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -1
  117. package/dist/cjs/components/TUIProfile/hooks/useMyProfile.js +1 -1
  118. package/dist/cjs/components/Toast/index.d.ts +11 -0
  119. package/dist/cjs/constants.js +1 -1
  120. package/dist/cjs/context/ComponentContext.d.ts +1 -1
  121. package/dist/cjs/context/TUIChatActionContext.d.ts +11 -2
  122. package/dist/cjs/context/TUIChatStateContext.d.ts +10 -0
  123. package/dist/cjs/context/TUIConversationContext.js +1 -1
  124. package/dist/cjs/context/TUILiveContext.d.ts +51 -0
  125. package/dist/cjs/context/TUILiveContext.js +1 -0
  126. package/dist/cjs/context/TUIMessageContext.d.ts +22 -1
  127. package/dist/cjs/context/TUIMessageContext.js +1 -1
  128. package/dist/cjs/context/TUIMessageInputContext.d.ts +4 -5
  129. package/dist/cjs/index.css +1 -1
  130. package/dist/cjs/index.d.css +547 -7
  131. package/dist/cjs/index.d.ts +18 -4
  132. package/dist/cjs/index.js +1 -1
  133. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -0
  134. package/dist/esm/components/Checkbox/index.d.ts +16 -0
  135. package/dist/esm/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -1
  136. package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -1
  137. package/dist/esm/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -1
  138. package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
  139. package/dist/esm/components/ConversationPreview/ConversationPreview.js +1 -1
  140. package/dist/esm/components/ConversationPreview/ConversationPreviewContent.js +1 -1
  141. package/dist/esm/components/ConversationPreview/utils.js +1 -1
  142. package/dist/esm/components/ConversationSearch/ConversationSearchResult.js +1 -1
  143. package/dist/esm/components/DivWithEdit/DivWithEdit.d.ts +16 -0
  144. package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +5 -1
  145. package/dist/esm/components/Icon/Icon.d.ts +14 -0
  146. package/dist/esm/components/Icon/config.js +1 -1
  147. package/dist/esm/components/Icon/images/like.png.js +1 -0
  148. package/dist/esm/components/Icon/images/liked.png.js +1 -0
  149. package/dist/esm/components/Icon/images/living.png.js +1 -0
  150. package/dist/esm/components/Icon/images/member.png.js +1 -0
  151. package/dist/esm/components/Icon/images/owner.png.js +1 -0
  152. package/dist/esm/components/Icon/images/send.png.js +1 -0
  153. package/dist/esm/components/Icon/images/union.png.js +1 -0
  154. package/dist/esm/components/Icon/images/unlike.png.js +1 -0
  155. package/dist/esm/components/Icon/images/unliked.png.js +1 -0
  156. package/dist/esm/components/Icon/images/ununion.png.js +1 -0
  157. package/dist/esm/components/Icon/images/unvector.png.js +1 -0
  158. package/dist/esm/components/Icon/images/vector.png.js +1 -0
  159. package/dist/esm/components/Icon/images/voice.png.js +1 -0
  160. package/dist/esm/components/Icon/type.d.ts +47 -0
  161. package/dist/esm/components/Icon/type.js +1 -1
  162. package/dist/esm/components/Input/Input.d.ts +7 -1
  163. package/dist/esm/components/Model/index.d.ts +9 -0
  164. package/dist/esm/components/Plugins/index.d.ts +17 -0
  165. package/dist/esm/components/Plugins/index.js +1 -1
  166. package/dist/esm/components/Popup/index.d.ts +12 -0
  167. package/dist/esm/components/Switch/Switch.d.ts +16 -0
  168. package/dist/esm/components/TUIChat/TUIChat.d.ts +8 -2
  169. package/dist/esm/components/TUIChat/TUIChat.js +1 -1
  170. package/dist/esm/components/TUIChat/TUIChatState.js +1 -1
  171. package/dist/esm/components/TUIChat/hooks/useCreateMessage.d.ts +29 -1
  172. package/dist/esm/components/TUIChat/hooks/useCreateMessage.js +1 -1
  173. package/dist/esm/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -1
  174. package/dist/esm/components/TUIChat/hooks/useHandleMessage.js +1 -1
  175. package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -1
  176. package/dist/esm/components/TUIChat/hooks/useMessageReceviedListener.js +1 -1
  177. package/dist/esm/components/TUIChat/unitls.js +1 -1
  178. package/dist/esm/components/TUIChatHeader/TUIChatHeader.d.ts +2 -0
  179. package/dist/esm/components/TUIChatHeader/TUIChatHeader.js +1 -1
  180. package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +7 -3
  181. package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
  182. package/dist/esm/components/TUIConversationList/TUIConversationList.js +1 -1
  183. package/dist/esm/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
  184. package/dist/esm/components/TUIKit/TUIKit.d.ts +2 -1
  185. package/dist/esm/components/TUIKit/TUIKit.js +1 -1
  186. package/dist/esm/components/TUIKit/hooks/useTUIKit.d.ts +2 -1
  187. package/dist/esm/components/TUIKit/hooks/useTUIKit.js +1 -1
  188. package/dist/esm/components/TUILive/TUILive.d.ts +29 -0
  189. package/dist/esm/components/TUILive/TUILive.js +1 -0
  190. package/dist/esm/components/TUILive/TUILiveContent.d.ts +13 -0
  191. package/dist/esm/components/TUILive/TUILiveContent.js +1 -0
  192. package/dist/esm/components/TUILive/TUILiveFooter.d.ts +29 -0
  193. package/dist/esm/components/TUILive/TUILiveFooter.js +1 -0
  194. package/dist/esm/components/TUILive/TUILiveHeader.d.ts +20 -0
  195. package/dist/esm/components/TUILive/TUILiveHeader.js +1 -0
  196. package/dist/esm/components/TUILive/TUILiveMemberList.d.ts +11 -0
  197. package/dist/esm/components/TUILive/TUILiveMemberList.js +1 -0
  198. package/dist/esm/components/TUILive/hooks/useLiveAtiveElements.js +1 -0
  199. package/dist/esm/components/TUILive/hooks/useLivePlayer.js +1 -0
  200. package/dist/esm/components/TUILive/hooks/useLiveState.js +1 -0
  201. package/dist/esm/components/TUILive/untils.js +1 -0
  202. package/dist/esm/components/TUIManage/TUIManage.js +1 -1
  203. package/dist/esm/components/TUIMessage/MessageAudio.js +1 -1
  204. package/dist/esm/components/TUIMessage/MessageAvatar.js +1 -0
  205. package/dist/esm/components/TUIMessage/MessageBubble.js +1 -1
  206. package/dist/esm/components/TUIMessage/MessageContext.d.ts +3 -1
  207. package/dist/esm/components/TUIMessage/MessageCustom.js +1 -1
  208. package/dist/esm/components/TUIMessage/MessageFile.js +1 -1
  209. package/dist/esm/components/TUIMessage/MessageImage.js +1 -1
  210. package/dist/esm/components/TUIMessage/MessageMerger.js +1 -1
  211. package/dist/esm/components/TUIMessage/MessageName.js +1 -0
  212. package/dist/esm/components/TUIMessage/MessagePlugins.d.ts +24 -0
  213. package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -1
  214. package/dist/esm/components/TUIMessage/MessageProgress.js +1 -0
  215. package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -1
  216. package/dist/esm/components/TUIMessage/MessageStatus.js +1 -1
  217. package/dist/esm/components/TUIMessage/MessageSystem.js +1 -1
  218. package/dist/esm/components/TUIMessage/MessageText.js +1 -1
  219. package/dist/esm/components/TUIMessage/MessageTip.js +1 -1
  220. package/dist/esm/components/TUIMessage/TUIMessage.d.ts +23 -3
  221. package/dist/esm/components/TUIMessage/TUIMessage.js +1 -1
  222. package/dist/esm/components/TUIMessage/TUIMessageDefault.js +1 -1
  223. package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -1
  224. package/dist/esm/components/TUIMessage/hooks/useMessagePluginElement.js +1 -1
  225. package/dist/esm/components/TUIMessage/hooks/useMessageReply.js +1 -1
  226. package/dist/esm/components/TUIMessage/utils/emojiMap.js +1 -1
  227. package/dist/esm/components/TUIMessage/utils/index.js +1 -1
  228. package/dist/esm/components/TUIMessageInput/EmojiPicker.js +1 -1
  229. package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.js +1 -1
  230. package/dist/esm/components/TUIMessageInput/InputQuoteDefalut.js +1 -1
  231. package/dist/esm/components/TUIMessageInput/TUIForward.js +1 -1
  232. package/dist/esm/components/TUIMessageInput/TUIMessageInput.d.ts +18 -7
  233. package/dist/esm/components/TUIMessageInput/TUIMessageInput.js +1 -1
  234. package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
  235. package/dist/esm/components/TUIMessageInput/Transmitter.js +1 -0
  236. package/dist/esm/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -1
  237. package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
  238. package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
  239. package/dist/esm/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
  240. package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.js +1 -1
  241. package/dist/esm/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
  242. package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.js +1 -1
  243. package/dist/esm/components/TUIMessageList/TUIMessageList.d.ts +3 -1
  244. package/dist/esm/components/TUIMessageList/TUIMessageList.js +1 -1
  245. package/dist/esm/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
  246. package/dist/esm/components/TUIProfile/TUIProfile.js +1 -1
  247. package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -1
  248. package/dist/esm/components/TUIProfile/hooks/useMyProfile.js +1 -1
  249. package/dist/esm/components/Toast/index.d.ts +11 -0
  250. package/dist/esm/constants.js +1 -1
  251. package/dist/esm/context/ComponentContext.d.ts +1 -1
  252. package/dist/esm/context/TUIChatActionContext.d.ts +11 -2
  253. package/dist/esm/context/TUIChatStateContext.d.ts +10 -0
  254. package/dist/esm/context/TUIConversationContext.js +1 -1
  255. package/dist/esm/context/TUILiveContext.d.ts +51 -0
  256. package/dist/esm/context/TUILiveContext.js +1 -0
  257. package/dist/esm/context/TUIMessageContext.d.ts +22 -1
  258. package/dist/esm/context/TUIMessageContext.js +1 -1
  259. package/dist/esm/context/TUIMessageInputContext.d.ts +4 -5
  260. package/dist/esm/index.css +1 -1
  261. package/dist/esm/index.d.css +547 -7
  262. package/dist/esm/index.d.ts +18 -4
  263. package/dist/esm/index.js +1 -1
  264. package/package.json +5 -2
  265. package/src/components/ConversationPreview/utils.tsx +2 -1
  266. package/src/components/Icon/config.ts +65 -0
  267. package/src/components/Icon/images/like.png +0 -0
  268. package/src/components/Icon/images/liked.png +0 -0
  269. package/src/components/Icon/images/living.png +0 -0
  270. package/src/components/Icon/images/member.png +0 -0
  271. package/src/components/Icon/images/owner.png +0 -0
  272. package/src/components/Icon/images/send.png +0 -0
  273. package/src/components/Icon/images/union.png +0 -0
  274. package/src/components/Icon/images/unlike.png +0 -0
  275. package/src/components/Icon/images/unliked.png +0 -0
  276. package/src/components/Icon/images/ununion.png +0 -0
  277. package/src/components/Icon/images/unvector.png +0 -0
  278. package/src/components/Icon/images/vector.png +0 -0
  279. package/src/components/Icon/images/voice.png +0 -0
  280. package/src/components/Icon/type.ts +13 -0
  281. package/src/components/Plugins/index.tsx +13 -11
  282. package/src/components/Plugins/styles/layout.scss +2 -1
  283. package/src/components/TUIChat/TUIChat.tsx +47 -8
  284. package/src/components/TUIChat/TUIChatState.tsx +27 -0
  285. package/src/components/TUIChat/hooks/useCreateMessage.tsx +85 -4
  286. package/src/components/TUIChat/hooks/useCreateTUIChatStateContext.tsx +12 -0
  287. package/src/components/TUIChat/hooks/useHandleMessage.tsx +24 -0
  288. package/src/components/TUIChat/hooks/useHandleMessageList.tsx +8 -0
  289. package/src/components/TUIChat/unitls.ts +13 -0
  290. package/src/components/TUIChatHeader/TUIChatHeader.tsx +6 -0
  291. package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +36 -16
  292. package/src/components/TUIChatHeader/styles/color.scss +0 -3
  293. package/src/components/TUIChatHeader/styles/layout.scss +8 -4
  294. package/src/components/TUIKit/TUIKit.tsx +8 -5
  295. package/src/components/TUIKit/hooks/useTUIKit.tsx +7 -3
  296. package/src/components/TUIKit/styles/reset.scss +4 -0
  297. package/src/components/TUIMessage/MessageAudio.tsx +61 -2
  298. package/src/components/TUIMessage/MessageAvatar.tsx +38 -0
  299. package/src/components/TUIMessage/MessageBubble.tsx +24 -6
  300. package/src/components/TUIMessage/MessageContext.tsx +5 -2
  301. package/src/components/TUIMessage/MessageCustom.tsx +2 -1
  302. package/src/components/TUIMessage/MessageFile.tsx +9 -3
  303. package/src/components/TUIMessage/MessageImage.tsx +2 -1
  304. package/src/components/TUIMessage/MessageMerger.tsx +2 -1
  305. package/src/components/TUIMessage/MessageName.tsx +41 -0
  306. package/src/components/TUIMessage/MessagePlugins.tsx +81 -14
  307. package/src/components/TUIMessage/MessageProgress.tsx +88 -0
  308. package/src/components/TUIMessage/MessageRevoke.tsx +1 -1
  309. package/src/components/TUIMessage/MessageStatus.tsx +6 -1
  310. package/src/components/TUIMessage/MessageText.tsx +3 -3
  311. package/src/components/TUIMessage/TUIMessage.tsx +68 -16
  312. package/src/components/TUIMessage/TUIMessageDefault.tsx +25 -15
  313. package/src/components/TUIMessage/hooks/useMessagePluginElement.tsx +15 -1
  314. package/src/components/TUIMessage/styles/layout.scss +87 -2
  315. package/src/components/TUIMessage/utils/emojiMap.ts +181 -0
  316. package/src/components/TUIMessage/utils/index.ts +14 -14
  317. package/src/components/TUIMessageInput/EmojiPicker.tsx +9 -2
  318. package/src/components/TUIMessageInput/InputPluginsDefalut.tsx +76 -8
  319. package/src/components/TUIMessageInput/InputQuoteDefalut.tsx +2 -1
  320. package/src/components/TUIMessageInput/TUIMessageInput.tsx +42 -22
  321. package/src/components/TUIMessageInput/TUIMessageInputDefault.tsx +2 -1
  322. package/src/components/TUIMessageInput/Transmitter.tsx +15 -0
  323. package/src/components/TUIMessageInput/hooks/useCreateMessageInputContext.ts +3 -9
  324. package/src/components/TUIMessageInput/hooks/useEmojiPicker.tsx +2 -1
  325. package/src/components/TUIMessageInput/hooks/useMessageInputState.tsx +8 -7
  326. package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +30 -31
  327. package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +2 -0
  328. package/src/components/TUIMessageInput/styles/layout.scss +16 -0
  329. package/src/components/TUIMessageList/TUIMessageList.tsx +32 -10
  330. package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +26 -6
  331. package/src/components/TUIMessageList/styles/layout.scss +13 -1
  332. package/src/components/index.ts +11 -0
  333. package/src/constants.ts +3 -0
  334. package/src/context/ComponentContext.tsx +1 -1
  335. package/src/context/TUIChatActionContext.tsx +14 -1
  336. package/src/context/TUIChatStateContext.tsx +8 -0
  337. package/src/context/TUIMessageContext.tsx +20 -0
  338. package/src/context/TUIMessageInputContext.tsx +2 -3
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{TUIKit}from"./components/TUIKit/TUIKit.js";export{useTUIKit}from"./components/TUIKit/hooks/useTUIKit.js";export{useCreateTUIKitContext}from"./components/TUIKit/hooks/useCreateTUIKitContext.js";export{TUIConversation,UnMemoizedTUIConversation}from"./components/TUIConversation/TUIConversation.js";export{TUIConversationList,UnMemoTUIConversationList}from"./components/TUIConversationList/TUIConversationList.js";import"tslib";import"react";import"tim-js-sdk";export{TUIChat}from"./components/TUIChat/TUIChat.js";export{ConversationPreview}from"./components/ConversationPreview/ConversationPreview.js";export{ConversationPreviewContent,unMemoConversationPreviewContent}from"./components/ConversationPreview/ConversationPreviewContent.js";export{TUIChatHeader}from"./components/TUIChatHeader/TUIChatHeader.js";export{TUIChatHeaderDefault}from"./components/TUIChatHeader/TUIChatHeaderDefault.js";export{TUIMessageList}from"./components/TUIMessageList/TUIMessageList.js";export{TUIMessageInput}from"./components/TUIMessageInput/TUIMessageInput.js";export{TUIMessageInputDefault}from"./components/TUIMessageInput/TUIMessageInputDefault.js";export{InputPluginsDefalut}from"./components/TUIMessageInput/InputPluginsDefalut.js";export{TUIProfile}from"./components/TUIProfile/TUIProfile.js";export{TUIProfileDefault}from"./components/TUIProfile/TUIProfileDefault.js";export{Avatar}from"./components/Avatar/Avatar.js";export{defaultGroupAvatarAVChatRoom,defaultGroupAvatarMeeting,defaultGroupAvatarPublic,defaultGroupAvatarWork,defaultUserAvatar}from"./components/Avatar/default.js";export{ConversationSearchInput}from"./components/ConversationSearch/ConversationSearchInput.js";export{ConversationSearchResult}from"./components/ConversationSearch/ConversationSearchResult.js";export{TUIManage}from"./components/TUIManage/TUIManage.js";export{TUIKitContext,TUIKitProvider,useTUIKitContext}from"./context/TUIKitContext.js";export{TUIChatStateContext,TUIChatStateContextProvider,useTUIChatStateContext}from"./context/TUIChatStateContext.js";export{TUIChatActionContext,TUIChatActionProvider,useTUIChatActionContext}from"./context/TUIChatActionContext.js";export{TUIMessageContext,TUIMessageContextProvider,useTUIMessageContext}from"./context/TUIMessageContext.js";export{ComponentContext,ComponentProvider,useComponentContext}from"./context/ComponentContext.js";export{TUIMessageInputContext,TUIMessageInputContextProvider,useTUIMessageInputContext}from"./context/TUIMessageInputContext.js";export{useConversation}from"./hooks/useConversation.js";export{useProfile}from"./hooks/useProfile.js";
1
+ export{TUIKit}from"./components/TUIKit/TUIKit.js";export{useTUIKit}from"./components/TUIKit/hooks/useTUIKit.js";export{useCreateTUIKitContext}from"./components/TUIKit/hooks/useCreateTUIKitContext.js";export{TUIConversation,UnMemoizedTUIConversation}from"./components/TUIConversation/TUIConversation.js";export{TUIConversationList,UnMemoTUIConversationList}from"./components/TUIConversationList/TUIConversationList.js";import"tslib";import"react";import"tim-js-sdk";export{TUIChat}from"./components/TUIChat/TUIChat.js";export{ConversationPreview}from"./components/ConversationPreview/ConversationPreview.js";export{ConversationPreviewContent,unMemoConversationPreviewContent}from"./components/ConversationPreview/ConversationPreviewContent.js";export{TUIChatHeader}from"./components/TUIChatHeader/TUIChatHeader.js";export{TUIChatHeaderDefault}from"./components/TUIChatHeader/TUIChatHeaderDefault.js";export{TUIMessageList}from"./components/TUIMessageList/TUIMessageList.js";export{TUIMessage}from"./components/TUIMessage/TUIMessage.js";export{MessagePlugins}from"./components/TUIMessage/MessagePlugins.js";export{MessageContext}from"./components/TUIMessage/MessageContext.js";export{TUIMessageInput}from"./components/TUIMessageInput/TUIMessageInput.js";export{TUIMessageInputDefault}from"./components/TUIMessageInput/TUIMessageInputDefault.js";export{InputPluginsDefalut}from"./components/TUIMessageInput/InputPluginsDefalut.js";export{TUIProfile}from"./components/TUIProfile/TUIProfile.js";export{TUIProfileDefault}from"./components/TUIProfile/TUIProfileDefault.js";export{Avatar}from"./components/Avatar/Avatar.js";export{defaultGroupAvatarAVChatRoom,defaultGroupAvatarMeeting,defaultGroupAvatarPublic,defaultGroupAvatarWork,defaultUserAvatar}from"./components/Avatar/default.js";export{ConversationSearchInput}from"./components/ConversationSearch/ConversationSearchInput.js";export{ConversationSearchResult}from"./components/ConversationSearch/ConversationSearchResult.js";export{TUIManage}from"./components/TUIManage/TUIManage.js";export{Popup}from"./components/Popup/index.js";export{Checkbox}from"./components/Checkbox/index.js";export{DivWithEdit}from"./components/DivWithEdit/DivWithEdit.js";export{Icon,changeTypeToIconClassName}from"./components/Icon/Icon.js";export{IconTypes}from"./components/Icon/type.js";export{EmptyStateIndicator}from"./components/EmptyStateIndicator/EmptyStateIndicator.js";export{Input}from"./components/Input/Input.js";export{Model}from"./components/Model/index.js";export{Plugins}from"./components/Plugins/index.js";export{Switch}from"./components/Switch/Switch.js";export{Toast}from"./components/Toast/index.js";export{TUIKitContext,TUIKitProvider,useTUIKitContext}from"./context/TUIKitContext.js";export{TUIChatStateContext,TUIChatStateContextProvider,useTUIChatStateContext}from"./context/TUIChatStateContext.js";export{TUIChatActionContext,TUIChatActionProvider,useTUIChatActionContext}from"./context/TUIChatActionContext.js";export{TUIMessageContext,TUIMessageContextProvider,messageShowType,useTUIMessageContext}from"./context/TUIMessageContext.js";export{ComponentContext,ComponentProvider,useComponentContext}from"./context/ComponentContext.js";export{TUIMessageInputContext,TUIMessageInputContextProvider,useTUIMessageInputContext}from"./context/TUIMessageInputContext.js";export{useConversation}from"./hooks/useConversation.js";export{useProfile}from"./hooks/useProfile.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencentcloud/chat-uikit-react",
3
- "version": "0.0.2",
3
+ "version": "1.0.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "license": "MIT",
@@ -10,13 +10,16 @@
10
10
  "im",
11
11
  "messaging",
12
12
  "conversation",
13
- "typescript"
13
+ "typescript",
14
+ "tencentcloud",
15
+ "uikit"
14
16
  ],
15
17
  "scripts": {
16
18
  "build": "yarn clean && yarn run rollup -c",
17
19
  "start": "yarn run rollup -c -w",
18
20
  "clean": "rimraf ./dist"
19
21
  },
22
+ "homepage": "https://www.tencentcloud.com/document/product/1047/45912",
20
23
  "repository": {
21
24
  "type": "git",
22
25
  "url": "https://github.com/TencentCloud/chat-uikit-react.git"
@@ -4,6 +4,7 @@ import {
4
4
  import React from 'react';
5
5
  import TIM, { Conversation, Group, Profile } from 'tim-js-sdk';
6
6
  import { defaultGroupAvatarWork, defaultUserAvatar } from '../Avatar';
7
+ import { formatEmojiString } from '../TUIMessage/utils/emojiMap';
7
8
 
8
9
  export const getDisplayTitle = (
9
10
  conversation: Conversation,
@@ -79,7 +80,7 @@ export const getDisplayMessage = (conversation:Conversation, myProfile:Profile)
79
80
  }}
80
81
  >
81
82
  <span>{from}</span>
82
- <span>{lastMessage.isRevoked ? 'recalled a message' : lastMessage.messageForShow}</span>
83
+ <span>{lastMessage.isRevoked ? 'recalled a message' : formatEmojiString(lastMessage.messageForShow, 1)}</span>
83
84
  </div>
84
85
  );
85
86
  };
@@ -28,6 +28,19 @@ import IconQuoteUrl from './images/quote.png';
28
28
  import IconRevocationUrl from './images/revocation.png';
29
29
  import IconEffortUrl from './images/effort.png';
30
30
  import IconCryUrl from './images/cry.png';
31
+ import IconSendUrl from './images/send.png';
32
+ import IconOwnerUrl from './images/owner.png';
33
+ import IconLivingUrl from './images/living.png';
34
+ import IconMemberUrl from './images/member.png';
35
+ import IconLikerUrl from './images/like.png';
36
+ import IconUnlikeUrl from './images/unlike.png';
37
+ import IconLikedUrl from './images/liked.png';
38
+ import IconUnlikedUrl from './images/unliked.png';
39
+ import IconUnionUrl from './images/union.png';
40
+ import IconUnunionUrl from './images/ununion.png';
41
+ import IconVectorUrl from './images/vector.png';
42
+ import IconUnvectorUrl from './images/unvector.png';
43
+ import IconVoiceUrl from './images/voice.png';
31
44
 
32
45
  import { IconTypes } from './type';
33
46
 
@@ -161,4 +174,56 @@ export const ICON_CONFIG:IconConfig = {
161
174
  url: IconCryUrl,
162
175
  className: 'tui-kit-icon-cry',
163
176
  },
177
+ [IconTypes.OWNER]: {
178
+ url: IconOwnerUrl,
179
+ className: 'tui-kit-icon-owner',
180
+ },
181
+ [IconTypes.SEND]: {
182
+ url: IconSendUrl,
183
+ className: 'tui-kit-icon-send',
184
+ },
185
+ [IconTypes.LIVING]: {
186
+ url: IconLivingUrl,
187
+ className: 'tui-kit-icon-living',
188
+ },
189
+ [IconTypes.MEMBER]: {
190
+ url: IconMemberUrl,
191
+ className: 'tui-kit-icon-member',
192
+ },
193
+ [IconTypes.LIKE]: {
194
+ url: IconLikerUrl,
195
+ className: 'tui-kit-icon-like',
196
+ },
197
+ [IconTypes.UNLIKE]: {
198
+ url: IconUnlikeUrl,
199
+ className: 'tui-kit-icon-unlike',
200
+ },
201
+ [IconTypes.LIKED]: {
202
+ url: IconLikedUrl,
203
+ className: 'tui-kit-icon-liked',
204
+ },
205
+ [IconTypes.UNLIKED]: {
206
+ url: IconUnlikedUrl,
207
+ className: 'tui-kit-icon-unliked',
208
+ },
209
+ [IconTypes.UNION]: {
210
+ url: IconUnionUrl,
211
+ className: 'tui-kit-icon-union',
212
+ },
213
+ [IconTypes.UNUNION]: {
214
+ url: IconUnunionUrl,
215
+ className: 'tui-kit-icon-ununion',
216
+ },
217
+ [IconTypes.VECTOR]: {
218
+ url: IconVectorUrl,
219
+ className: 'tui-kit-icon-vector',
220
+ },
221
+ [IconTypes.UNVECTOR]: {
222
+ url: IconUnvectorUrl,
223
+ className: 'tui-kit-icon-unvector',
224
+ },
225
+ [IconTypes.VOICE]: {
226
+ url: IconVoiceUrl,
227
+ className: 'tui-kit-icon-voice',
228
+ },
164
229
  };
@@ -29,4 +29,17 @@ export enum IconTypes {
29
29
  REVOCATION = 'revocation',
30
30
  EFFORT = 'effort',
31
31
  CRY = 'cry',
32
+ SEND = 'send',
33
+ OWNER = 'owner',
34
+ LIVING = 'living',
35
+ MEMBER = 'member',
36
+ LIKE = 'like',
37
+ UNLIKE = 'unlike',
38
+ LIKED = 'liked',
39
+ UNLIKED = 'unliked',
40
+ UNION = 'union',
41
+ UNUNION = 'ununion',
42
+ VECTOR = 'vector',
43
+ UNVECTOR = 'unvector',
44
+ VOICE = 'voice',
32
45
  }
@@ -49,16 +49,17 @@ function PluginsWithContext<T extends PluginsProps>(
49
49
  };
50
50
 
51
51
  return (
52
- <ul className={`plugin ${className}`}>
53
- {showPicker?.length > 0 && showPicker.map((Item, index:number) => {
54
- const key = `${Item}${index}`;
55
- return (
56
- <li className="plugin-item" key={key}>
57
- {Item}
58
- </li>
59
- );
60
- })}
61
- {
52
+ (showPicker.length > 0 || elements?.length > 0) && (
53
+ <ul className={`plugin ${className}`}>
54
+ {showPicker?.length > 0 && showPicker.map((Item, index:number) => {
55
+ const key = `${Item}${index}`;
56
+ return (
57
+ <li className="plugin-item" key={key}>
58
+ {Item}
59
+ </li>
60
+ );
61
+ })}
62
+ {
62
63
  elements?.length > 0 && (
63
64
  <div className="plugin-popup">
64
65
  <div role="menuitem" tabIndex={0} className="more" onClick={handleShow}>
@@ -90,7 +91,8 @@ function PluginsWithContext<T extends PluginsProps>(
90
91
  </div>
91
92
  )
92
93
  }
93
- </ul>
94
+ </ul>
95
+ )
94
96
  );
95
97
  }
96
98
  const Plugins = forwardRef(PluginsWithContext);
@@ -2,6 +2,8 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  height: 100%;
5
+ padding: 0 8px;
6
+ gap: 8px;
5
7
  }
6
8
 
7
9
  .plugin-popup {
@@ -9,7 +11,6 @@
9
11
  display: flex;
10
12
  align-items: center;
11
13
  position: relative;
12
- padding: 0 8px;
13
14
  &-box {
14
15
  position: absolute;
15
16
  z-index: 2;
@@ -28,8 +28,8 @@ import { useHandleMessageList } from './hooks/useHandleMessageList';
28
28
  import { useHandleMessage } from './hooks/useHandleMessage';
29
29
 
30
30
  import { TUIChatHeader as TUIChatHeaderElement } from '../TUIChatHeader';
31
- import { TUIMessageList } from '../TUIMessageList';
32
- import { TUIMessageInput as TUIMessageInputElement } from '../TUIMessageInput';
31
+ import { MessageListProps, TUIMessageList } from '../TUIMessageList';
32
+ import { TUIMessageInput as TUIMessageInputElement, TUIMessageInputBasicProps } from '../TUIMessageInput';
33
33
  import { EmptyStateIndicator } from '../EmptyStateIndicator';
34
34
  import { Toast } from '../Toast';
35
35
 
@@ -37,7 +37,7 @@ interface TUIChatProps {
37
37
  className?: string,
38
38
  conversation?: Conversation,
39
39
  EmptyPlaceholder?: React.ReactElement,
40
- TUIMessage?: React.ComponentType<TUIMessageProps>,
40
+ TUIMessage?: React.ComponentType<TUIMessageProps | UnknowPorps>,
41
41
  TUIChatHeader?: React.ComponentType<TUIChatHeaderDefaultProps>,
42
42
  MessageContext?: React.ComponentType<MessageContextProps>,
43
43
  TUIMessageInput?: React.ComponentType<UnknowPorps>,
@@ -48,8 +48,12 @@ interface TUIChatProps {
48
48
  updateMessage: (event?: Array<Message>) => void,
49
49
  event: any,
50
50
  ) => void,
51
- sendMessage?: (message:Message) => Promise<Message>,
51
+ sendMessage?: (message:Message, options?:any) => Promise<Message>,
52
52
  revokeMessage?: (message:Message) => Promise<Message>,
53
+ messageConfig?: TUIMessageProps,
54
+ cloudCustomData?: string,
55
+ TUIMessageInputConfig?: TUIMessageInputBasicProps,
56
+ TUIMessageListConfig?: MessageListProps,
53
57
  [propName: string]: any,
54
58
  }
55
59
 
@@ -100,6 +104,10 @@ function TUIChatInner <T extends TUIChatInnerProps>(
100
104
  onMessageRecevied,
101
105
  sendMessage: propsSendMessage,
102
106
  revokeMessage,
107
+ messageConfig,
108
+ cloudCustomData,
109
+ TUIMessageInputConfig,
110
+ TUIMessageListConfig,
103
111
  } = props;
104
112
 
105
113
  const [state, dispatch] = useReducer<ChatStateReducer>(
@@ -114,6 +122,10 @@ function TUIChatInner <T extends TUIChatInnerProps>(
114
122
  conversation,
115
123
  messageListRef,
116
124
  textareaRef,
125
+ messageConfig,
126
+ cloudCustomData,
127
+ TUIMessageInputConfig,
128
+ TUIMessageListConfig,
117
129
  ...state,
118
130
  });
119
131
 
@@ -124,30 +136,39 @@ function TUIChatInner <T extends TUIChatInnerProps>(
124
136
  createVideoMessage,
125
137
  createFileMessage,
126
138
  createForwardMessage,
127
- } = useCreateMessage({ tim, conversation });
139
+ createCustomMessage,
140
+ createAudioMessage,
141
+ createTextAtMessage,
142
+ createLocationMessage,
143
+ createMergerMessage,
144
+ } = useCreateMessage({ tim, conversation, cloudCustomData });
128
145
 
129
146
  const {
130
147
  getMessageList,
131
148
  updateMessage,
132
149
  editLocalmessage,
133
150
  removeMessage,
151
+ updataUploadPenddingMessageList,
134
152
  } = useHandleMessageList({
135
153
  tim, conversation, state, dispatch,
136
154
  });
137
155
 
138
156
  const {
139
157
  operateMessage,
158
+ setAudioSource,
159
+ setVideoSource,
160
+ setHighlightedMessageId,
140
161
  } = useHandleMessage({
141
162
  state, dispatch,
142
163
  });
143
164
 
144
- const sendMessage = async (message: Message) => {
165
+ const sendMessage = async (message: Message, options?:any) => {
145
166
  updateMessage([message]);
146
167
  try {
147
168
  if (propsSendMessage) {
148
- await propsSendMessage(message);
169
+ await propsSendMessage(message, options);
149
170
  } else {
150
- await tim.sendMessage(message);
171
+ await tim.sendMessage(message, options);
151
172
  }
152
173
  editLocalmessage(message);
153
174
  } catch (error) {
@@ -219,10 +240,19 @@ function TUIChatInner <T extends TUIChatInnerProps>(
219
240
  createVideoMessage,
220
241
  createFileMessage,
221
242
  createForwardMessage,
243
+ createCustomMessage,
244
+ createAudioMessage,
245
+ createTextAtMessage,
246
+ createLocationMessage,
247
+ createMergerMessage,
222
248
  editLocalmessage,
223
249
  operateMessage,
224
250
  loadMore,
225
251
  revokeMessage,
252
+ setAudioSource,
253
+ setVideoSource,
254
+ setHighlightedMessageId,
255
+ updataUploadPenddingMessageList,
226
256
  }),
227
257
  [
228
258
  sendMessage,
@@ -234,10 +264,19 @@ function TUIChatInner <T extends TUIChatInnerProps>(
234
264
  createVideoMessage,
235
265
  createFileMessage,
236
266
  createForwardMessage,
267
+ createCustomMessage,
268
+ createAudioMessage,
269
+ createTextAtMessage,
270
+ createLocationMessage,
271
+ createMergerMessage,
237
272
  editLocalmessage,
238
273
  operateMessage,
239
274
  loadMore,
240
275
  revokeMessage,
276
+ setAudioSource,
277
+ setVideoSource,
278
+ setHighlightedMessageId,
279
+ updataUploadPenddingMessageList,
241
280
  ],
242
281
  );
243
282
 
@@ -8,6 +8,7 @@ import {
8
8
  handleMessageList,
9
9
  handleEditMessage,
10
10
  handleRemoveMessage,
11
+ handleUploadPenddingMessage,
11
12
  } from './unitls';
12
13
 
13
14
  export type ChatStateReducerAction =
@@ -60,6 +61,18 @@ export type ChatStateReducerAction =
60
61
  type: CONSTANT_DISPATCH_TYPE.SET_NO_MORE,
61
62
  value?: boolean,
62
63
  }
64
+ | {
65
+ type: CONSTANT_DISPATCH_TYPE.SET_AUDIO_SOURCE,
66
+ value?: HTMLAudioElement | null,
67
+ }
68
+ | {
69
+ type: CONSTANT_DISPATCH_TYPE.SET_VIDEO_SOURCE,
70
+ value?: HTMLVideoElement | null,
71
+ }
72
+ | {
73
+ type: CONSTANT_DISPATCH_TYPE.UPDATE_UPLOAD_PENDDING_MESSAGE_LIST,
74
+ value?: Message,
75
+ }
63
76
  export type ChatStateReducer = Reducer<TUIChatStateContextValue, ChatStateReducerAction>;
64
77
 
65
78
  export const chatReducer = (
@@ -111,6 +124,17 @@ export const chatReducer = (
111
124
  return { ...state, operateData: { ...action.value } };
112
125
  case CONSTANT_DISPATCH_TYPE.SET_NO_MORE:
113
126
  return { ...state, noMore: action.value };
127
+ case CONSTANT_DISPATCH_TYPE.SET_AUDIO_SOURCE:
128
+ return { ...state, audioSource: action.value };
129
+ case CONSTANT_DISPATCH_TYPE.SET_VIDEO_SOURCE:
130
+ return { ...state, vidoeSource: action.value };
131
+ case CONSTANT_DISPATCH_TYPE.UPDATE_UPLOAD_PENDDING_MESSAGE_LIST:
132
+ return {
133
+ ...state,
134
+ uploadPenddingMessageList: [
135
+ ...handleUploadPenddingMessage(state.uploadPenddingMessageList, action.value),
136
+ ],
137
+ };
114
138
  default: return state;
115
139
  }
116
140
  };
@@ -126,4 +150,7 @@ export const initialState:TUIChatStateContextValue = {
126
150
  isSameLastMessageID: false,
127
151
  operateData: {},
128
152
  noMore: false,
153
+ audioSource: null,
154
+ vidoeSource: null,
155
+ uploadPenddingMessageList: [],
129
156
  };
@@ -1,4 +1,4 @@
1
- import { useCallback } from 'react';
1
+ import { useCallback, useEffect, useState } from 'react';
2
2
  import TIM, { ChatSDK, Conversation, Message } from 'tim-js-sdk';
3
3
 
4
4
  export interface CreateMessageProps {
@@ -6,6 +6,7 @@ export interface CreateMessageProps {
6
6
  conversation?: Conversation,
7
7
  to?: string,
8
8
  type?: TIM.TYPES,
9
+ cloudCustomData?: string,
9
10
  }
10
11
  export interface BasicCreateMessageProps {
11
12
  needReadReceipt?: boolean,
@@ -36,7 +37,39 @@ export interface CreateUploadMessageProps extends BasicCreateMessageProps{
36
37
 
37
38
  export interface CreateForwardMessageProps extends BasicCreateMessageProps{
38
39
  conversation: Conversation,
39
- message: Message,
40
+ message: Message
41
+ }
42
+
43
+ export interface CreateCustomMessageProps extends BasicCreateMessageProps{
44
+ payload: {
45
+ data: string,
46
+ description: string,
47
+ extension: string,
48
+ }
49
+ }
50
+
51
+ export interface CreateTextAtMessageProps extends BasicCreateMessageProps{
52
+ payload: {
53
+ text: string,
54
+ atUserList: Array<string>,
55
+ }
56
+ }
57
+
58
+ export interface CreateLocationMessageProps extends BasicCreateMessageProps{
59
+ payload: {
60
+ description: string,
61
+ longitude: number,
62
+ latitude: number,
63
+ }
64
+ }
65
+
66
+ export interface CreateMergerMessageProps extends BasicCreateMessageProps{
67
+ payload: {
68
+ messageList: Array<Message>,
69
+ title: string,
70
+ abstractList: string,
71
+ compatibleText: string,
72
+ }
40
73
  }
41
74
 
42
75
  export function useCreateMessage<T extends CreateMessageProps>(props:T) {
@@ -45,16 +78,23 @@ export function useCreateMessage<T extends CreateMessageProps>(props:T) {
45
78
  conversation,
46
79
  to = '',
47
80
  type: propType,
81
+ cloudCustomData,
48
82
  } = props;
49
83
 
50
84
  const { type: conversationType, userProfile, groupProfile } = conversation;
51
85
 
52
86
  const type = propType || conversationType;
53
87
 
54
- const basicConfig = {
88
+ const [basicConfig, setBasicConfig] = useState({
55
89
  to: to || (type === TIM.TYPES.CONV_C2C ? userProfile?.userID : groupProfile?.groupID),
56
90
  conversationType: type,
57
- };
91
+ cloudCustomData,
92
+ });
93
+
94
+ useEffect(() => {
95
+ basicConfig.cloudCustomData = cloudCustomData;
96
+ setBasicConfig(basicConfig);
97
+ }, [cloudCustomData]);
58
98
 
59
99
  const createTextMessage = useCallback((params: CreateTextMessageProps) => tim.createTextMessage({
60
100
  ...basicConfig,
@@ -106,6 +146,42 @@ export function useCreateMessage<T extends CreateMessageProps>(props:T) {
106
146
  });
107
147
  }, [tim]);
108
148
 
149
+ const createCustomMessage = useCallback((
150
+ params: CreateCustomMessageProps,
151
+ // ChatSDK < V2.26.0 createCustomMessage ts declaration error
152
+ ) => (tim as any).createCustomMessage({
153
+ ...basicConfig,
154
+ ...params,
155
+ }), [tim]);
156
+
157
+ const createAudioMessage = useCallback((
158
+ params: CreateUploadMessageProps,
159
+ ) => tim.createAudioMessage({
160
+ ...basicConfig,
161
+ ...params,
162
+ }), [tim]);
163
+
164
+ const createTextAtMessage = useCallback((
165
+ params: CreateTextAtMessageProps,
166
+ ) => tim.createTextAtMessage({
167
+ ...basicConfig,
168
+ ...params,
169
+ }), [tim]);
170
+
171
+ const createLocationMessage = useCallback((
172
+ params: CreateLocationMessageProps,
173
+ ) => tim.createLocationMessage({
174
+ ...basicConfig,
175
+ ...params,
176
+ }), [tim]);
177
+
178
+ const createMergerMessage = useCallback((
179
+ params: CreateMergerMessageProps,
180
+ ) => tim.createMergerMessage({
181
+ ...basicConfig,
182
+ ...params,
183
+ }), [tim]);
184
+
109
185
  return {
110
186
  createTextMessage,
111
187
  createFaceMessage,
@@ -113,5 +189,10 @@ export function useCreateMessage<T extends CreateMessageProps>(props:T) {
113
189
  createVideoMessage,
114
190
  createFileMessage,
115
191
  createForwardMessage,
192
+ createCustomMessage,
193
+ createAudioMessage,
194
+ createTextAtMessage,
195
+ createLocationMessage,
196
+ createMergerMessage,
116
197
  };
117
198
  }
@@ -12,6 +12,10 @@ function useCreateTUIChatStateContext(props:CreateTUIChatStateContextProp) {
12
12
  conversation,
13
13
  messageList,
14
14
  messageListRef,
15
+ messageConfig,
16
+ cloudCustomData,
17
+ TUIMessageInputConfig,
18
+ TUIMessageListConfig,
15
19
  ...state
16
20
  } = props;
17
21
  const TUIChatStateContext = useMemo(() => ({
@@ -19,12 +23,20 @@ function useCreateTUIChatStateContext(props:CreateTUIChatStateContextProp) {
19
23
  conversation,
20
24
  messageList,
21
25
  messageListRef,
26
+ messageConfig,
27
+ cloudCustomData,
28
+ TUIMessageInputConfig,
29
+ TUIMessageListConfig,
22
30
  ...state,
23
31
  }), [
24
32
  tim,
25
33
  conversation,
26
34
  messageList,
27
35
  messageListRef,
36
+ messageConfig,
37
+ cloudCustomData,
38
+ TUIMessageInputConfig,
39
+ TUIMessageListConfig,
28
40
  state,
29
41
  ]);
30
42
 
@@ -27,7 +27,31 @@ export function useHandleMessage<T extends CreateMessageProps>(props:T) {
27
27
  });
28
28
  }, [dispatch]);
29
29
 
30
+ const setAudioSource = useCallback((data: HTMLAudioElement | null) => {
31
+ dispatch({
32
+ type: CONSTANT_DISPATCH_TYPE.SET_AUDIO_SOURCE,
33
+ value: data,
34
+ });
35
+ }, [dispatch]);
36
+
37
+ const setVideoSource = useCallback((data: HTMLVideoElement | null) => {
38
+ dispatch({
39
+ type: CONSTANT_DISPATCH_TYPE.SET_VIDEO_SOURCE,
40
+ value: data,
41
+ });
42
+ }, [dispatch]);
43
+
44
+ const setHighlightedMessageId = useCallback((highlightedMessageId: string) => {
45
+ dispatch({
46
+ type: CONSTANT_DISPATCH_TYPE.SET_HIGH_LIGHTED_MESSAGE_ID,
47
+ value: highlightedMessageId,
48
+ });
49
+ }, [dispatch]);
50
+
30
51
  return {
31
52
  operateMessage,
53
+ setAudioSource,
54
+ setVideoSource,
55
+ setHighlightedMessageId,
32
56
  };
33
57
  }
@@ -61,10 +61,18 @@ export function useHandleMessageList<T extends CreateMessageProps>(props:T) {
61
61
  });
62
62
  }, [dispatch]);
63
63
 
64
+ const updataUploadPenddingMessageList = useCallback((message: Message) => {
65
+ dispatch({
66
+ type: CONSTANT_DISPATCH_TYPE.UPDATE_UPLOAD_PENDDING_MESSAGE_LIST,
67
+ value: message,
68
+ });
69
+ }, [dispatch]);
70
+
64
71
  return {
65
72
  getMessageList,
66
73
  updateMessage,
67
74
  removeMessage,
68
75
  editLocalmessage,
76
+ updataUploadPenddingMessageList,
69
77
  };
70
78
  }
@@ -53,3 +53,16 @@ export const handleRemoveMessage = (
53
53
  list.splice(index, 1);
54
54
  return list;
55
55
  };
56
+
57
+ export const handleUploadPenddingMessage = (
58
+ messageList: Array<Message>,
59
+ message: Message,
60
+ ) => {
61
+ const list = [...messageList];
62
+ if (!list.some((item:Message) => item.ID === message.ID)) {
63
+ list.push(message);
64
+ }
65
+ const index = list.findIndex((item) => item?.ID === message?.ID);
66
+ list[index] = message;
67
+ return list;
68
+ };