@tencentcloud/chat-uikit-react 0.0.3 → 1.0.1

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 (316) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/_virtual/_commonjsHelpers.js +1 -0
  3. package/dist/cjs/_virtual/tim-js.js +1 -0
  4. package/dist/cjs/components/Checkbox/index.d.ts +16 -0
  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/ConversationCreateUserSelectList.js +1 -1
  8. package/dist/cjs/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
  9. package/dist/cjs/components/ConversationPreview/ConversationPreview.js +1 -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/ConversationSearchResult.js +1 -1
  13. package/dist/cjs/components/DivWithEdit/DivWithEdit.d.ts +16 -0
  14. package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +5 -1
  15. package/dist/cjs/components/Icon/Icon.d.ts +14 -0
  16. package/dist/cjs/components/Icon/config.js +1 -1
  17. package/dist/cjs/components/Icon/images/like.png.js +1 -0
  18. package/dist/cjs/components/Icon/images/liked.png.js +1 -0
  19. package/dist/cjs/components/Icon/images/living.png.js +1 -0
  20. package/dist/cjs/components/Icon/images/member.png.js +1 -0
  21. package/dist/cjs/components/Icon/images/owner.png.js +1 -0
  22. package/dist/cjs/components/Icon/images/send.png.js +1 -0
  23. package/dist/cjs/components/Icon/images/union.png.js +1 -0
  24. package/dist/cjs/components/Icon/images/unlike.png.js +1 -0
  25. package/dist/cjs/components/Icon/images/unliked.png.js +1 -0
  26. package/dist/cjs/components/Icon/images/ununion.png.js +1 -0
  27. package/dist/cjs/components/Icon/images/unvector.png.js +1 -0
  28. package/dist/cjs/components/Icon/images/vector.png.js +1 -0
  29. package/dist/cjs/components/Icon/images/voice.png.js +1 -0
  30. package/dist/cjs/components/Icon/type.d.ts +47 -0
  31. package/dist/cjs/components/Icon/type.js +1 -1
  32. package/dist/cjs/components/Input/Input.d.ts +7 -1
  33. package/dist/cjs/components/Model/index.d.ts +9 -0
  34. package/dist/cjs/components/Plugins/index.d.ts +17 -0
  35. package/dist/cjs/components/Plugins/index.js +1 -1
  36. package/dist/cjs/components/Popup/index.d.ts +12 -0
  37. package/dist/cjs/components/Switch/Switch.d.ts +16 -0
  38. package/dist/cjs/components/TUIChat/TUIChat.d.ts +8 -2
  39. package/dist/cjs/components/TUIChat/TUIChat.js +1 -1
  40. package/dist/cjs/components/TUIChat/TUIChatState.js +1 -1
  41. package/dist/cjs/components/TUIChat/hooks/useCreateMessage.d.ts +29 -1
  42. package/dist/cjs/components/TUIChat/hooks/useCreateMessage.js +1 -1
  43. package/dist/cjs/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -1
  44. package/dist/cjs/components/TUIChat/hooks/useHandleMessage.js +1 -1
  45. package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -1
  46. package/dist/cjs/components/TUIChat/hooks/useMessageReceviedListener.js +1 -1
  47. package/dist/cjs/components/TUIChat/unitls.js +1 -1
  48. package/dist/cjs/components/TUIChatHeader/TUIChatHeader.d.ts +2 -0
  49. package/dist/cjs/components/TUIChatHeader/TUIChatHeader.js +1 -1
  50. package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +7 -3
  51. package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
  52. package/dist/cjs/components/TUIConversation/TUIConversation.js +1 -1
  53. package/dist/cjs/components/TUIConversationList/TUIConversationList.js +1 -1
  54. package/dist/cjs/components/TUIConversationList/hooks/useConversationList.js +1 -1
  55. package/dist/cjs/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
  56. package/dist/cjs/components/TUIKit/TUIKit.d.ts +2 -1
  57. package/dist/cjs/components/TUIKit/TUIKit.js +1 -1
  58. package/dist/cjs/components/TUIKit/hooks/useTUIKit.d.ts +2 -1
  59. package/dist/cjs/components/TUIKit/hooks/useTUIKit.js +1 -1
  60. package/dist/cjs/components/TUIManage/TUIManage.js +1 -1
  61. package/dist/cjs/components/TUIMessage/MessageAudio.js +1 -1
  62. package/dist/cjs/components/TUIMessage/MessageAvatar.js +1 -0
  63. package/dist/cjs/components/TUIMessage/MessageBubble.js +1 -1
  64. package/dist/cjs/components/TUIMessage/MessageContext.d.ts +3 -1
  65. package/dist/cjs/components/TUIMessage/MessageContext.js +1 -1
  66. package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -1
  67. package/dist/cjs/components/TUIMessage/MessageFile.js +1 -1
  68. package/dist/cjs/components/TUIMessage/MessageImage.js +1 -1
  69. package/dist/cjs/components/TUIMessage/MessageMerger.js +1 -1
  70. package/dist/cjs/components/TUIMessage/MessageName.js +1 -0
  71. package/dist/cjs/components/TUIMessage/MessagePlugins.d.ts +24 -0
  72. package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -1
  73. package/dist/cjs/components/TUIMessage/MessageProgress.js +1 -0
  74. package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -1
  75. package/dist/cjs/components/TUIMessage/MessageStatus.js +1 -1
  76. package/dist/cjs/components/TUIMessage/MessageSystem.js +1 -1
  77. package/dist/cjs/components/TUIMessage/MessageText.js +1 -1
  78. package/dist/cjs/components/TUIMessage/MessageTip.js +1 -1
  79. package/dist/cjs/components/TUIMessage/TUIMessage.d.ts +23 -3
  80. package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -1
  81. package/dist/cjs/components/TUIMessage/TUIMessageDefault.js +1 -1
  82. package/dist/cjs/components/TUIMessage/hooks/useMessageContextHandler.js +1 -1
  83. package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -1
  84. package/dist/cjs/components/TUIMessage/hooks/useMessagePluginElement.js +1 -1
  85. package/dist/cjs/components/TUIMessage/hooks/useMessageReply.js +1 -1
  86. package/dist/cjs/components/TUIMessage/utils/index.js +1 -1
  87. package/dist/cjs/components/TUIMessageInput/EmojiPicker.js +1 -1
  88. package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.js +1 -1
  89. package/dist/cjs/components/TUIMessageInput/InputQuoteDefalut.js +1 -1
  90. package/dist/cjs/components/TUIMessageInput/TUIForward.js +1 -1
  91. package/dist/cjs/components/TUIMessageInput/TUIMessageInput.d.ts +18 -7
  92. package/dist/cjs/components/TUIMessageInput/TUIMessageInput.js +1 -1
  93. package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
  94. package/dist/cjs/components/TUIMessageInput/Transmitter.js +1 -0
  95. package/dist/cjs/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -1
  96. package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
  97. package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
  98. package/dist/cjs/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
  99. package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.js +1 -1
  100. package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
  101. package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.js +1 -1
  102. package/dist/cjs/components/TUIMessageList/TUIMessageList.d.ts +3 -1
  103. package/dist/cjs/components/TUIMessageList/TUIMessageList.js +1 -1
  104. package/dist/cjs/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
  105. package/dist/cjs/components/TUIProfile/TUIProfile.js +1 -1
  106. package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -1
  107. package/dist/cjs/components/TUIProfile/hooks/useMyProfile.js +1 -1
  108. package/dist/cjs/components/Toast/index.d.ts +11 -0
  109. package/dist/cjs/components/untils.js +1 -1
  110. package/dist/cjs/constants.js +1 -1
  111. package/dist/cjs/context/ComponentContext.d.ts +1 -1
  112. package/dist/cjs/context/TUIChatActionContext.d.ts +11 -2
  113. package/dist/cjs/context/TUIChatStateContext.d.ts +10 -0
  114. package/dist/cjs/context/TUIConversationContext.js +1 -1
  115. package/dist/cjs/context/TUIMessageContext.d.ts +22 -1
  116. package/dist/cjs/context/TUIMessageContext.js +1 -1
  117. package/dist/cjs/context/TUIMessageInputContext.d.ts +4 -5
  118. package/dist/cjs/hooks/useConversation.js +1 -1
  119. package/dist/cjs/index.css +1 -1
  120. package/dist/cjs/index.d.css +342 -8
  121. package/dist/cjs/index.d.ts +18 -4
  122. package/dist/cjs/index.js +1 -1
  123. package/dist/esm/_virtual/_commonjsHelpers.js +1 -0
  124. package/dist/esm/_virtual/tim-js.js +1 -0
  125. package/dist/esm/components/Checkbox/index.d.ts +16 -0
  126. package/dist/esm/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -1
  127. package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -1
  128. package/dist/esm/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -1
  129. package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.js +1 -1
  130. package/dist/esm/components/ConversationPreview/ConversationPreview.js +1 -1
  131. package/dist/esm/components/ConversationPreview/ConversationPreviewContent.js +1 -1
  132. package/dist/esm/components/ConversationPreview/utils.js +1 -1
  133. package/dist/esm/components/ConversationSearch/ConversationSearchResult.js +1 -1
  134. package/dist/esm/components/DivWithEdit/DivWithEdit.d.ts +16 -0
  135. package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +5 -1
  136. package/dist/esm/components/Icon/Icon.d.ts +14 -0
  137. package/dist/esm/components/Icon/config.js +1 -1
  138. package/dist/esm/components/Icon/images/like.png.js +1 -0
  139. package/dist/esm/components/Icon/images/liked.png.js +1 -0
  140. package/dist/esm/components/Icon/images/living.png.js +1 -0
  141. package/dist/esm/components/Icon/images/member.png.js +1 -0
  142. package/dist/esm/components/Icon/images/owner.png.js +1 -0
  143. package/dist/esm/components/Icon/images/send.png.js +1 -0
  144. package/dist/esm/components/Icon/images/union.png.js +1 -0
  145. package/dist/esm/components/Icon/images/unlike.png.js +1 -0
  146. package/dist/esm/components/Icon/images/unliked.png.js +1 -0
  147. package/dist/esm/components/Icon/images/ununion.png.js +1 -0
  148. package/dist/esm/components/Icon/images/unvector.png.js +1 -0
  149. package/dist/esm/components/Icon/images/vector.png.js +1 -0
  150. package/dist/esm/components/Icon/images/voice.png.js +1 -0
  151. package/dist/esm/components/Icon/type.d.ts +47 -0
  152. package/dist/esm/components/Icon/type.js +1 -1
  153. package/dist/esm/components/Input/Input.d.ts +7 -1
  154. package/dist/esm/components/Model/index.d.ts +9 -0
  155. package/dist/esm/components/Plugins/index.d.ts +17 -0
  156. package/dist/esm/components/Plugins/index.js +1 -1
  157. package/dist/esm/components/Popup/index.d.ts +12 -0
  158. package/dist/esm/components/Switch/Switch.d.ts +16 -0
  159. package/dist/esm/components/TUIChat/TUIChat.d.ts +8 -2
  160. package/dist/esm/components/TUIChat/TUIChat.js +1 -1
  161. package/dist/esm/components/TUIChat/TUIChatState.js +1 -1
  162. package/dist/esm/components/TUIChat/hooks/useCreateMessage.d.ts +29 -1
  163. package/dist/esm/components/TUIChat/hooks/useCreateMessage.js +1 -1
  164. package/dist/esm/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -1
  165. package/dist/esm/components/TUIChat/hooks/useHandleMessage.js +1 -1
  166. package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -1
  167. package/dist/esm/components/TUIChat/hooks/useMessageReceviedListener.js +1 -1
  168. package/dist/esm/components/TUIChat/unitls.js +1 -1
  169. package/dist/esm/components/TUIChatHeader/TUIChatHeader.d.ts +2 -0
  170. package/dist/esm/components/TUIChatHeader/TUIChatHeader.js +1 -1
  171. package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +7 -3
  172. package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -1
  173. package/dist/esm/components/TUIConversation/TUIConversation.js +1 -1
  174. package/dist/esm/components/TUIConversationList/TUIConversationList.js +1 -1
  175. package/dist/esm/components/TUIConversationList/hooks/useConversationList.js +1 -1
  176. package/dist/esm/components/TUIConversationList/hooks/useConversationUpdate.js +1 -1
  177. package/dist/esm/components/TUIKit/TUIKit.d.ts +2 -1
  178. package/dist/esm/components/TUIKit/TUIKit.js +1 -1
  179. package/dist/esm/components/TUIKit/hooks/useTUIKit.d.ts +2 -1
  180. package/dist/esm/components/TUIKit/hooks/useTUIKit.js +1 -1
  181. package/dist/esm/components/TUIManage/TUIManage.js +1 -1
  182. package/dist/esm/components/TUIMessage/MessageAudio.js +1 -1
  183. package/dist/esm/components/TUIMessage/MessageAvatar.js +1 -0
  184. package/dist/esm/components/TUIMessage/MessageBubble.js +1 -1
  185. package/dist/esm/components/TUIMessage/MessageContext.d.ts +3 -1
  186. package/dist/esm/components/TUIMessage/MessageContext.js +1 -1
  187. package/dist/esm/components/TUIMessage/MessageCustom.js +1 -1
  188. package/dist/esm/components/TUIMessage/MessageFile.js +1 -1
  189. package/dist/esm/components/TUIMessage/MessageImage.js +1 -1
  190. package/dist/esm/components/TUIMessage/MessageMerger.js +1 -1
  191. package/dist/esm/components/TUIMessage/MessageName.js +1 -0
  192. package/dist/esm/components/TUIMessage/MessagePlugins.d.ts +24 -0
  193. package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -1
  194. package/dist/esm/components/TUIMessage/MessageProgress.js +1 -0
  195. package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -1
  196. package/dist/esm/components/TUIMessage/MessageStatus.js +1 -1
  197. package/dist/esm/components/TUIMessage/MessageSystem.js +1 -1
  198. package/dist/esm/components/TUIMessage/MessageText.js +1 -1
  199. package/dist/esm/components/TUIMessage/MessageTip.js +1 -1
  200. package/dist/esm/components/TUIMessage/TUIMessage.d.ts +23 -3
  201. package/dist/esm/components/TUIMessage/TUIMessage.js +1 -1
  202. package/dist/esm/components/TUIMessage/TUIMessageDefault.js +1 -1
  203. package/dist/esm/components/TUIMessage/hooks/useMessageContextHandler.js +1 -1
  204. package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -1
  205. package/dist/esm/components/TUIMessage/hooks/useMessagePluginElement.js +1 -1
  206. package/dist/esm/components/TUIMessage/hooks/useMessageReply.js +1 -1
  207. package/dist/esm/components/TUIMessage/utils/index.js +1 -1
  208. package/dist/esm/components/TUIMessageInput/EmojiPicker.js +1 -1
  209. package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.js +1 -1
  210. package/dist/esm/components/TUIMessageInput/InputQuoteDefalut.js +1 -1
  211. package/dist/esm/components/TUIMessageInput/TUIForward.js +1 -1
  212. package/dist/esm/components/TUIMessageInput/TUIMessageInput.d.ts +18 -7
  213. package/dist/esm/components/TUIMessageInput/TUIMessageInput.js +1 -1
  214. package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.js +1 -1
  215. package/dist/esm/components/TUIMessageInput/Transmitter.js +1 -0
  216. package/dist/esm/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -1
  217. package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -1
  218. package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -1
  219. package/dist/esm/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -1
  220. package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.js +1 -1
  221. package/dist/esm/components/TUIMessageInput/hooks/useMessageInputText.js +1 -1
  222. package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.js +1 -1
  223. package/dist/esm/components/TUIMessageList/TUIMessageList.d.ts +3 -1
  224. package/dist/esm/components/TUIMessageList/TUIMessageList.js +1 -1
  225. package/dist/esm/components/TUIMessageList/hooks/useMessageListElement.js +1 -1
  226. package/dist/esm/components/TUIProfile/TUIProfile.js +1 -1
  227. package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -1
  228. package/dist/esm/components/TUIProfile/hooks/useMyProfile.js +1 -1
  229. package/dist/esm/components/Toast/index.d.ts +11 -0
  230. package/dist/esm/components/untils.js +1 -1
  231. package/dist/esm/constants.js +1 -1
  232. package/dist/esm/context/ComponentContext.d.ts +1 -1
  233. package/dist/esm/context/TUIChatActionContext.d.ts +11 -2
  234. package/dist/esm/context/TUIChatStateContext.d.ts +10 -0
  235. package/dist/esm/context/TUIConversationContext.js +1 -1
  236. package/dist/esm/context/TUIMessageContext.d.ts +22 -1
  237. package/dist/esm/context/TUIMessageContext.js +1 -1
  238. package/dist/esm/context/TUIMessageInputContext.d.ts +4 -5
  239. package/dist/esm/hooks/useConversation.js +1 -1
  240. package/dist/esm/index.css +1 -1
  241. package/dist/esm/index.d.css +342 -8
  242. package/dist/esm/index.d.ts +18 -4
  243. package/dist/esm/index.js +1 -1
  244. package/package.json +2 -3
  245. package/src/components/Icon/config.ts +65 -0
  246. package/src/components/Icon/images/like.png +0 -0
  247. package/src/components/Icon/images/liked.png +0 -0
  248. package/src/components/Icon/images/living.png +0 -0
  249. package/src/components/Icon/images/member.png +0 -0
  250. package/src/components/Icon/images/owner.png +0 -0
  251. package/src/components/Icon/images/send.png +0 -0
  252. package/src/components/Icon/images/union.png +0 -0
  253. package/src/components/Icon/images/unlike.png +0 -0
  254. package/src/components/Icon/images/unliked.png +0 -0
  255. package/src/components/Icon/images/ununion.png +0 -0
  256. package/src/components/Icon/images/unvector.png +0 -0
  257. package/src/components/Icon/images/vector.png +0 -0
  258. package/src/components/Icon/images/voice.png +0 -0
  259. package/src/components/Icon/type.ts +13 -0
  260. package/src/components/Plugins/index.tsx +13 -11
  261. package/src/components/Plugins/styles/layout.scss +2 -1
  262. package/src/components/TUIChat/TUIChat.tsx +47 -8
  263. package/src/components/TUIChat/TUIChatState.tsx +27 -0
  264. package/src/components/TUIChat/hooks/useCreateMessage.tsx +85 -4
  265. package/src/components/TUIChat/hooks/useCreateTUIChatStateContext.tsx +12 -0
  266. package/src/components/TUIChat/hooks/useHandleMessage.tsx +24 -0
  267. package/src/components/TUIChat/hooks/useHandleMessageList.tsx +8 -0
  268. package/src/components/TUIChat/hooks/useMessageReceviedListener.tsx +2 -2
  269. package/src/components/TUIChat/unitls.ts +13 -0
  270. package/src/components/TUIChatHeader/TUIChatHeader.tsx +6 -0
  271. package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +37 -18
  272. package/src/components/TUIChatHeader/styles/color.scss +0 -3
  273. package/src/components/TUIChatHeader/styles/layout.scss +8 -4
  274. package/src/components/TUIKit/TUIKit.tsx +8 -5
  275. package/src/components/TUIKit/hooks/useTUIKit.tsx +14 -4
  276. package/src/components/TUIKit/styles/reset.scss +4 -0
  277. package/src/components/TUIMessage/MessageAudio.tsx +61 -2
  278. package/src/components/TUIMessage/MessageAvatar.tsx +38 -0
  279. package/src/components/TUIMessage/MessageBubble.tsx +24 -6
  280. package/src/components/TUIMessage/MessageContext.tsx +5 -2
  281. package/src/components/TUIMessage/MessageCustom.tsx +15 -2
  282. package/src/components/TUIMessage/MessageFile.tsx +9 -3
  283. package/src/components/TUIMessage/MessageImage.tsx +2 -1
  284. package/src/components/TUIMessage/MessageMerger.tsx +2 -1
  285. package/src/components/TUIMessage/MessageName.tsx +41 -0
  286. package/src/components/TUIMessage/MessagePlugins.tsx +81 -14
  287. package/src/components/TUIMessage/MessageProgress.tsx +88 -0
  288. package/src/components/TUIMessage/MessageRevoke.tsx +1 -1
  289. package/src/components/TUIMessage/MessageStatus.tsx +6 -1
  290. package/src/components/TUIMessage/MessageText.tsx +3 -3
  291. package/src/components/TUIMessage/TUIMessage.tsx +68 -16
  292. package/src/components/TUIMessage/TUIMessageDefault.tsx +25 -15
  293. package/src/components/TUIMessage/hooks/useMessagePluginElement.tsx +15 -1
  294. package/src/components/TUIMessage/styles/layout.scss +97 -4
  295. package/src/components/TUIMessage/utils/index.ts +14 -14
  296. package/src/components/TUIMessageInput/EmojiPicker.tsx +7 -1
  297. package/src/components/TUIMessageInput/InputPluginsDefalut.tsx +51 -8
  298. package/src/components/TUIMessageInput/TUIMessageInput.tsx +47 -22
  299. package/src/components/TUIMessageInput/TUIMessageInputDefault.tsx +3 -2
  300. package/src/components/TUIMessageInput/Transmitter.tsx +15 -0
  301. package/src/components/TUIMessageInput/hooks/useCreateMessageInputContext.ts +3 -9
  302. package/src/components/TUIMessageInput/hooks/useMessageInputState.tsx +8 -7
  303. package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +28 -30
  304. package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +2 -0
  305. package/src/components/TUIMessageInput/styles/layout.scss +16 -0
  306. package/src/components/TUIMessageList/TUIMessageList.tsx +32 -10
  307. package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +26 -6
  308. package/src/components/TUIMessageList/styles/layout.scss +13 -1
  309. package/src/components/index.ts +12 -0
  310. package/src/constants.ts +3 -0
  311. package/src/context/ComponentContext.tsx +1 -1
  312. package/src/context/TUIChatActionContext.tsx +14 -1
  313. package/src/context/TUIChatStateContext.tsx +8 -0
  314. package/src/context/TUIKitContext.tsx +5 -1
  315. package/src/context/TUIMessageContext.tsx +20 -0
  316. package/src/context/TUIMessageInputContext.tsx +2 -3
@@ -7,15 +7,18 @@ export { TUIChat } from './components/TUIChat/TUIChat.js';
7
7
  export { TUIKitContext, TUIKitContextValue, TUIKitProvider, useTUIKitContext } from './context/TUIKitContext.js';
8
8
  export { TUIChatStateContext, TUIChatStateContextProvider, TUIChatStateContextValue, useTUIChatStateContext } from './context/TUIChatStateContext.js';
9
9
  export { TUIChatActionContext, TUIChatActionContextValue, TUIChatActionProvider, useTUIChatActionContext } from './context/TUIChatActionContext.js';
10
- export { TUIMessageContext, TUIMessageContextProvider, TUIMessageContextValue, useTUIMessageContext } from './context/TUIMessageContext.js';
10
+ export { TUIMessageContext, TUIMessageContextProvider, TUIMessageContextValue, messageShowType, useTUIMessageContext } from './context/TUIMessageContext.js';
11
11
  export { ComponentContext, ComponentContextValue, ComponentProvider, UnknowPorps, useComponentContext } from './context/ComponentContext.js';
12
12
  export { TUIMessageInputContext, TUIMessageInputContextProvider, TUIMessageInputContextValue, useTUIMessageInputContext } from './context/TUIMessageInputContext.js';
13
13
  export { ConversationPreview, ConversationPreviewProps, ConversationPreviewUIComponentProps } from './components/ConversationPreview/ConversationPreview.js';
14
14
  export { ConversationPreviewContent, unMemoConversationPreviewContent } from './components/ConversationPreview/ConversationPreviewContent.js';
15
15
  export { TUIChatHeader } from './components/TUIChatHeader/TUIChatHeader.js';
16
- export { TUIChatHeaderDefault, TUIChatHeaderDefaultProps } from './components/TUIChatHeader/TUIChatHeaderDefault.js';
17
- export { TUIMessageList } from './components/TUIMessageList/TUIMessageList.js';
18
- export { TUIMessageInput, TUIMessageInputProps } from './components/TUIMessageInput/TUIMessageInput.js';
16
+ export { TUIChatHeaderBasicProps, TUIChatHeaderDefault, TUIChatHeaderDefaultProps } from './components/TUIChatHeader/TUIChatHeaderDefault.js';
17
+ export { MessageListProps, TUIMessageList } from './components/TUIMessageList/TUIMessageList.js';
18
+ export { TUIMessage, TUIMessageProps } from './components/TUIMessage/TUIMessage.js';
19
+ export { MessagePluginConfigProps, MessagePlugins, MessagePluginsProps } from './components/TUIMessage/MessagePlugins.js';
20
+ export { MessageContext, MessageContextProps } from './components/TUIMessage/MessageContext.js';
21
+ export { PluginConfigProps, TUIMessageInput, TUIMessageInputBasicProps, TUIMessageInputProps } from './components/TUIMessageInput/TUIMessageInput.js';
19
22
  export { TUIMessageInputDefault } from './components/TUIMessageInput/TUIMessageInputDefault.js';
20
23
  export { InputPluginsDefalut } from './components/TUIMessageInput/InputPluginsDefalut.js';
21
24
  export { TUIProfile } from './components/TUIProfile/TUIProfile.js';
@@ -25,5 +28,16 @@ export { defaultGroupAvatarAVChatRoom, defaultGroupAvatarMeeting, defaultGroupAv
25
28
  export { ConversationSearchInput } from './components/ConversationSearch/ConversationSearchInput.js';
26
29
  export { ConversationSearchResult, ConversationSearchResultProps } from './components/ConversationSearch/ConversationSearchResult.js';
27
30
  export { TUIManage } from './components/TUIManage/TUIManage.js';
31
+ export { Popup } from './components/Popup/index.js';
32
+ export { Checkbox } from './components/Checkbox/index.js';
33
+ export { DivWithEdit } from './components/DivWithEdit/DivWithEdit.js';
34
+ export { Icon, IconProps, changeTypeToIconClassName } from './components/Icon/Icon.js';
35
+ export { IconTypes } from './components/Icon/type.js';
36
+ export { EmptyStateIndicator, EmptyStateIndicatorProps } from './components/EmptyStateIndicator/EmptyStateIndicator.js';
37
+ export { Input, InputProps, InputRef } from './components/Input/Input.js';
38
+ export { Model } from './components/Model/index.js';
39
+ export { Plugins, PluginsProps } from './components/Plugins/index.js';
40
+ export { Switch } from './components/Switch/Switch.js';
41
+ export { Toast } from './components/Toast/index.js';
28
42
  export { CreateGroupConversationParams, useConversation } from './hooks/useConversation.js';
29
43
  export { useProfile } from './hooks/useProfile.js';
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"./node_modules/tim-js-sdk/tim-js.js";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.3",
3
+ "version": "1.0.1",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "license": "MIT",
@@ -60,14 +60,13 @@
60
60
  "dependencies": {
61
61
  "date-fns": "^2.29.3",
62
62
  "react-date-picker": "^9.0.0",
63
- "tim-js-sdk": "^2.24.2",
63
+ "tim-js-sdk": "^2.26.1",
64
64
  "tim-upload-plugin": "^1.0.5"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "date-fns": "^2.29.3",
68
68
  "react": "^18.2.0",
69
69
  "react-date-picker": "^9.0.0",
70
- "tim-js-sdk": "^2.24.2",
71
70
  "tim-upload-plugin": "^1.0.5",
72
71
  "tslib": "^2.4.1"
73
72
  }
@@ -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
  }