@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
@@ -2,22 +2,21 @@ import React, {
2
2
  useCallback,
3
3
  ChangeEventHandler,
4
4
  MutableRefObject,
5
- useEffect,
6
- useState,
7
5
  } from 'react';
8
- import { CONSTANT_DISPATCH_TYPE, MESSAGE_OPERATE } from '../../../constants';
6
+ import { CONSTANT_DISPATCH_TYPE, MESSAGE_OPERATE, MESSAGE_TYPE_NAME } from '../../../constants';
9
7
  import {
10
8
  useTUIChatActionContext,
11
- useTUIChatStateContext,
12
9
  useTUIKitContext,
13
10
  } from '../../../context';
14
11
  import { formatEmojiString } from '../../TUIMessage/utils/emojiMap';
15
12
  import { useHandleQuoteMessage } from './useHandleQuoteMessage';
16
13
  import type { IbaseStateProps, ICursorPos } from './useMessageInputState';
14
+ import { filesData } from './useUploadPicker';
17
15
 
18
16
  interface useMessageInputTextProps extends IbaseStateProps {
19
17
  focus?: boolean,
20
18
  textareaRef?: MutableRefObject<HTMLTextAreaElement | undefined>,
19
+ sendUploadMessage?: (file: filesData, type: MESSAGE_TYPE_NAME) => void
21
20
  }
22
21
 
23
22
  export const useMessageInputText = (props:useMessageInputTextProps) => {
@@ -26,19 +25,11 @@ export const useMessageInputText = (props:useMessageInputTextProps) => {
26
25
  dispatch,
27
26
  focus,
28
27
  textareaRef,
28
+ sendUploadMessage,
29
29
  } = props;
30
30
 
31
- const [quoteMessage, setQuoteMessage] = useState(null);
32
-
33
31
  const { tim } = useTUIKitContext('useMessageInputText');
34
32
  const { sendMessage, createTextMessage, operateMessage } = useTUIChatActionContext('TUIMessageInput');
35
- const {
36
- operateData,
37
- } = useTUIChatStateContext('TUIMessageInputDefault');
38
-
39
- useEffect(() => {
40
- setQuoteMessage(operateData[MESSAGE_OPERATE.QUOTE]);
41
- }, [operateData]);
42
33
 
43
34
  const { cloudCustomData } = useHandleQuoteMessage();
44
35
 
@@ -101,27 +92,34 @@ export const useMessageInputText = (props:useMessageInputTextProps) => {
101
92
  );
102
93
 
103
94
  const handlePasete = useCallback(
104
- async (e: ClipboardEvent) => {
95
+ async (e: React.ClipboardEvent | any) => {
105
96
  e.preventDefault();
106
97
  if (!(e.clipboardData && e.clipboardData.items)) {
107
98
  return;
108
99
  }
109
- const str = formatEmojiString(e.clipboardData.getData('text'), 1);
110
- if (str) {
111
- dispatch({
112
- type: CONSTANT_DISPATCH_TYPE.SET_TEXT,
113
- getNewText: (text:string) => `${text}${str}`,
114
- });
115
- }
116
- // else {
117
- // for (let i = 0; i < e.clipboardData.items.length; i += 1) {
118
- // const item = e.clipboardData.items[i];
119
- // if (item.kind === 'file') {
120
- // const f = item.getAsFile();
121
- // console.log('file', f);
122
- // }
123
- // }
124
- // }
100
+ const { types, items } = e.clipboardData;
101
+ types.find((type, index) => {
102
+ const item = items[index];
103
+ switch (type) {
104
+ case 'text/plain':
105
+ item.getAsString((str) => {
106
+ dispatch({
107
+ type: CONSTANT_DISPATCH_TYPE.SET_TEXT,
108
+ getNewText: (text:string) => `${text}${str}`,
109
+ });
110
+ });
111
+ return true;
112
+ case 'Files': {
113
+ const file = item.getAsFile();
114
+ if (item && item.kind === 'file' && item.type.match(/^image\//i)) {
115
+ sendUploadMessage({ file }, MESSAGE_TYPE_NAME.IMAGE);
116
+ }
117
+ return true;
118
+ }
119
+ default:
120
+ return false;
121
+ }
122
+ });
125
123
  },
126
124
  [textareaRef],
127
125
  );
@@ -16,6 +16,7 @@ export function useUploadPicker<T extends IbaseStateProps>(props:PropsWithChildr
16
16
  createImageMessage,
17
17
  createVideoMessage,
18
18
  createFileMessage,
19
+ updataUploadPenddingMessageList,
19
20
  } = useTUIChatActionContext('useUploadPicker');
20
21
 
21
22
  const creatUploadMessage = {
@@ -29,6 +30,7 @@ export function useUploadPicker<T extends IbaseStateProps>(props:PropsWithChildr
29
30
  payload: file,
30
31
  onProgress(num:number) {
31
32
  message.progress = num;
33
+ updataUploadPenddingMessageList(message);
32
34
  },
33
35
  });
34
36
  sendMessage(message);
@@ -7,6 +7,7 @@
7
7
  display: flex;
8
8
  align-items: center;
9
9
  padding: 14px 12px;
10
+ gap: 12px;
10
11
  .input-box {
11
12
  flex: 1;
12
13
  display: flex;
@@ -55,6 +56,11 @@
55
56
  display: none;
56
57
  }
57
58
  }
59
+ &-box {
60
+ flex: 1;
61
+ display: flex;
62
+ align-items: center;
63
+ }
58
64
  }
59
65
 
60
66
  ul li {
@@ -115,6 +121,9 @@ ul li {
115
121
  }
116
122
  }
117
123
  }
124
+ .emoji-plugin-right {
125
+ right: 0;
126
+ }
118
127
  }
119
128
 
120
129
 
@@ -279,4 +288,11 @@ ul li {
279
288
  -webkit-box-orient: vertical;
280
289
  }
281
290
  }
291
+ }
292
+
293
+ .transmitter {
294
+ padding: 0 10px;
295
+ .icon-send {
296
+ transform: rotate(90deg);
297
+ }
282
298
  }
@@ -14,9 +14,11 @@ import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyState
14
14
 
15
15
  import './styles/index.scss';
16
16
 
17
- interface MessageListProps extends InfiniteScrollProps {
17
+ export interface MessageListProps extends InfiniteScrollProps {
18
+ className?: string,
18
19
  messageList?: Array<Message>,
19
20
  highlightedMessageId?: string,
21
+ intervalsTimer?: number,
20
22
  }
21
23
  function TUIMessageListWithContext <T extends MessageListProps>(
22
24
  props: PropsWithChildren<T>,
@@ -25,6 +27,7 @@ function TUIMessageListWithContext <T extends MessageListProps>(
25
27
  messageList: propsMessageList,
26
28
  highlightedMessageId: propsHighlightedMessageId,
27
29
  loadMore: propsLoadMore,
30
+ intervalsTimer: propsIntervalsTimer,
28
31
  } = props;
29
32
 
30
33
  const [ulElement, setUlElement] = useState<HTMLUListElement | null>(null);
@@ -37,20 +40,26 @@ function TUIMessageListWithContext <T extends MessageListProps>(
37
40
  isSameLastMessageID,
38
41
  messageListRef,
39
42
  noMore,
43
+ TUIMessageListConfig,
40
44
  } = useTUIChatStateContext('TUIMessageList');
41
- const { loadMore: contextLoadMore } = useTUIChatActionContext('TUIMessageList');
45
+ const { loadMore: contextLoadMore, setHighlightedMessageId } = useTUIChatActionContext('TUIMessageList');
42
46
  const { TUIMessage, EmptyStateIndicator = DefaultEmptyStateIndicator } = useComponentContext('TUIMessageList');
43
- const highlightedMessageId = propsHighlightedMessageId || contextHighlightedMessageId;
47
+
48
+ const highlightedMessageId = propsHighlightedMessageId
49
+ || TUIMessageListConfig?.highlightedMessageId
50
+ || contextHighlightedMessageId;
51
+ const intervalsTimer = (propsIntervalsTimer || TUIMessageListConfig?.intervalsTimer || 30) * 60;
44
52
 
45
53
  const { messageList: enrichedMessageList } = useEnrichedMessageList({
46
- messageList: propsMessageList || contextMessageList,
54
+ messageList: propsMessageList || TUIMessageListConfig?.messageList || contextMessageList,
47
55
  });
48
56
 
49
- const loadMore = propsLoadMore || contextLoadMore;
57
+ const loadMore = propsLoadMore || TUIMessageListConfig?.loadMore || contextLoadMore;
50
58
 
51
59
  const elements = useMessageListElement({
52
60
  enrichedMessageList,
53
61
  TUIMessage,
62
+ intervalsTimer,
54
63
  });
55
64
 
56
65
  useEffect(() => {
@@ -59,10 +68,6 @@ function TUIMessageListWithContext <T extends MessageListProps>(
59
68
  if (!isCompleted && parentElement?.clientHeight >= ulElement?.clientHeight) {
60
69
  await loadMore();
61
70
  }
62
- if (highlightedMessageId) {
63
- const element = ulElement?.querySelector(`[data-message-id='${highlightedMessageId}']`);
64
- element?.scrollIntoView({ block: 'center' });
65
- }
66
71
 
67
72
  if (ulElement?.children && (!firstRender || !isSameLastMessageID)) {
68
73
  const HTMLCollection = ulElement?.children || [];
@@ -76,8 +81,25 @@ function TUIMessageListWithContext <T extends MessageListProps>(
76
81
  })();
77
82
  }, [elements, firstRender]);
78
83
 
84
+ useEffect(() => {
85
+ if (highlightedMessageId) {
86
+ const element = ulElement?.querySelector(`[data-message-id='${highlightedMessageId}']`);
87
+ if (!element) {
88
+ return;
89
+ }
90
+ const { children } = element.children[1];
91
+ children[children.length - 1].classList.add('high-lighted');
92
+ element?.scrollIntoView({ block: 'center' });
93
+ const timer = setTimeout(() => {
94
+ children[children.length - 1].classList.remove('high-lighted');
95
+ clearTimeout(timer);
96
+ setHighlightedMessageId('');
97
+ }, 1000);
98
+ }
99
+ }, [highlightedMessageId]);
100
+
79
101
  return (
80
- <div className="message-list" ref={messageListRef}>
102
+ <div className={`message-list ${!firstRender ? 'hide' : ''}`} ref={messageListRef}>
81
103
  {noMore}
82
104
  {noMore && <p className="no-more">no More</p>}
83
105
  <InfiniteScroll
@@ -1,22 +1,42 @@
1
- import React, { PropsWithChildren, useEffect, useMemo } from 'react';
1
+ import React, {
2
+ PropsWithChildren, useMemo,
3
+ } from 'react';
2
4
  import { Message } from 'tim-js-sdk';
5
+ import { UnknowPorps } from '../../../context';
3
6
  import { TUIMessageProps } from '../../TUIMessage/TUIMessage';
7
+ import { getTimeStamp } from '../../untils';
4
8
 
5
9
  interface MessageListElementProps {
6
10
  enrichedMessageList: Array<Message>;
7
- TUIMessage?: React.ComponentType<TUIMessageProps>,
11
+ TUIMessage?: React.ComponentType<TUIMessageProps | UnknowPorps>,
12
+ intervalsTimer?: number
8
13
  }
9
14
 
10
15
  function useMessageListElement <T extends MessageListElementProps>(
11
16
  props: PropsWithChildren<T>,
12
17
  ) {
13
- const { enrichedMessageList, TUIMessage } = props;
18
+ const {
19
+ enrichedMessageList,
20
+ TUIMessage,
21
+ intervalsTimer,
22
+ } = props;
23
+
14
24
  return useMemo(() => enrichedMessageList?.map((item: Message, index:number) => {
15
25
  const key = `${JSON.stringify(item)}${index}`;
26
+ const preMessageTImer = index > 0 ? enrichedMessageList[index - 1]?.time : -1;
27
+ const currrentTimer = item?.time || 0;
28
+ const isShowIntervalsTImer = preMessageTImer !== -1
29
+ ? (currrentTimer - preMessageTImer) >= intervalsTimer : false;
16
30
  return (
17
- <li className="message-list-item" key={key}>
18
- <TUIMessage message={item} />
19
- </li>
31
+ <>
32
+ {
33
+ isShowIntervalsTImer && <div className="message-list-time" key={`${currrentTimer + index}`}>{currrentTimer ? getTimeStamp(currrentTimer * 1000) : 0}</div>
34
+ }
35
+ <li className="message-list-item" key={key}>
36
+ <TUIMessage message={item} key={key} />
37
+ </li>
38
+
39
+ </>
20
40
  );
21
41
  }), [enrichedMessageList]);
22
42
  }
@@ -1,7 +1,7 @@
1
1
  ul,li,div,p,label,span {
2
2
  margin: 0;
3
3
  padding: 0;
4
- }
4
+ }
5
5
  ul li {
6
6
  list-style: none;
7
7
  }
@@ -12,6 +12,9 @@ ul li {
12
12
  overflow-y: auto;
13
13
  position: relative;
14
14
  padding: 0 20px;
15
+ &.hide {
16
+ opacity: 0;
17
+ }
15
18
  &-item {
16
19
  display: grid;
17
20
  padding: 5px 0;
@@ -25,4 +28,13 @@ ul li {
25
28
  line-height: 17px;
26
29
  color: #999999;
27
30
  }
31
+ &-time {
32
+ color: #7a7a7a;
33
+ font-family: PingFangSC-Medium;
34
+ font-size: 12px;
35
+ font-weight: 400;
36
+ line-height: 14px;
37
+ padding: 10px;
38
+ text-align: center;
39
+ }
28
40
  }
@@ -5,8 +5,20 @@ export * from './TUIChat';
5
5
  export * from './ConversationPreview';
6
6
  export * from './TUIChatHeader';
7
7
  export * from './TUIMessageList';
8
+ export * from './TUIMessage';
8
9
  export * from './TUIMessageInput';
9
10
  export * from './TUIProfile';
10
11
  export * from './Avatar';
11
12
  export * from './ConversationSearch';
12
13
  export * from './TUIManage';
14
+ export * from './Popup';
15
+ export * from './Checkbox';
16
+ export * from './DivWithEdit';
17
+ export * from './Icon';
18
+ export * from './EmptyStateIndicator';
19
+ export * from './Input';
20
+ export * from './Model';
21
+ export * from './Plugins';
22
+ export * from './Switch';
23
+ export * from './Toast';
24
+ export * from './Popup';
package/src/constants.ts CHANGED
@@ -42,6 +42,9 @@ export enum CONSTANT_DISPATCH_TYPE {
42
42
  OPERATE_MESSAGE = 'operateMessage',
43
43
  SET_NO_MORE = 'setNoMore',
44
44
  SET_CURSOR_POS = 'setCursorPos',
45
+ SET_AUDIO_SOURCE = 'setAudioSource',
46
+ SET_VIDEO_SOURCE = 'setVideoSource',
47
+ UPDATE_UPLOAD_PENDDING_MESSAGE_LIST = 'updateUploadPenddingMessageList'
45
48
  }
46
49
 
47
50
  export enum MESSAGE_TYPE {
@@ -8,7 +8,7 @@ export interface UnknowPorps {
8
8
  }
9
9
 
10
10
  export interface ComponentContextValue {
11
- TUIMessage?: React.ComponentType<TUIMessageProps>,
11
+ TUIMessage?: React.ComponentType<TUIMessageProps | UnknowPorps>,
12
12
  TUIChatHeader?: React.ComponentType<TUIChatHeaderDefaultProps>,
13
13
  EmptyStateIndicator?: React.ComponentType<EmptyStateIndicatorProps>,
14
14
  TUIMessageInput?: React.ComponentType<UnknowPorps>,
@@ -1,15 +1,19 @@
1
1
  import React, { PropsWithChildren, useContext } from 'react';
2
2
  import { Message } from 'tim-js-sdk';
3
3
  import type {
4
+ CreateCustomMessageProps,
4
5
  CreateFaceMessageProps,
5
6
  CreateForwardMessageProps,
7
+ CreateLocationMessageProps,
8
+ CreateMergerMessageProps,
9
+ CreateTextAtMessageProps,
6
10
  CreateTextMessageProps,
7
11
  CreateUploadMessageProps,
8
12
  } from '../components/TUIChat/hooks/useCreateMessage';
9
13
  import { OperateMessageParams } from '../components/TUIChat/hooks/useHandleMessage';
10
14
 
11
15
  export interface TUIChatActionContextValue {
12
- sendMessage?: (message: Message) => Promise<void>,
16
+ sendMessage?: (message: Message, options?:any) => Promise<void>,
13
17
  removeMessage?: (message: Message) => void,
14
18
  updateMessage?: (messages: Array<Message>) => void,
15
19
  createTextMessage?: (options: CreateTextMessageProps) => Message,
@@ -18,10 +22,19 @@ export interface TUIChatActionContextValue {
18
22
  createVideoMessage?: (options: CreateUploadMessageProps) => Message,
19
23
  createFileMessage?: (options: CreateUploadMessageProps) => Message,
20
24
  createForwardMessage?: (options: CreateForwardMessageProps) => Message,
25
+ createCustomMessage?: (options: CreateCustomMessageProps) => Message,
26
+ createAudioMessage?: (options: CreateUploadMessageProps) => Message,
27
+ createTextAtMessage?: (options: CreateTextAtMessageProps) => Message,
28
+ createLocationMessage?: (options: CreateLocationMessageProps) => Message,
29
+ createMergerMessage?: (options: CreateMergerMessageProps) => Message,
21
30
  editLocalmessage?: (message: Message) => void,
22
31
  operateMessage?: (data?: OperateMessageParams) => void,
23
32
  loadMore?: () => Promise<void>,
24
33
  revokeMessage?: (message:Message) => Promise<Message>,
34
+ setAudioSource?: (source: HTMLAudioElement | null) => void,
35
+ setVideoSource?: (source: HTMLVideoElement | null) => void,
36
+ setHighlightedMessageId?: (highlightedMessageId: string) => void,
37
+ updataUploadPenddingMessageList?: (message?:Message) => void,
25
38
  }
26
39
 
27
40
  export const TUIChatActionContext = React.createContext<
@@ -2,6 +2,7 @@ import React, {
2
2
  PropsWithChildren, useContext, MutableRefObject, RefObject,
3
3
  } from 'react';
4
4
  import { Conversation, Message } from 'tim-js-sdk';
5
+ import { MessageListProps, TUIMessageInputBasicProps, TUIMessageProps } from '../components';
5
6
  import { OperateMessageParams } from '../components/TUIChat/hooks/useHandleMessage';
6
7
 
7
8
  export interface TUIChatStateContextValue {
@@ -17,6 +18,13 @@ export interface TUIChatStateContextValue {
17
18
  textareaRef?: MutableRefObject<HTMLTextAreaElement | undefined>,
18
19
  operateData?: OperateMessageParams,
19
20
  noMore?: boolean,
21
+ messageConfig?: TUIMessageProps,
22
+ cloudCustomData?: string,
23
+ TUIMessageInputConfig?: TUIMessageInputBasicProps,
24
+ audioSource?: HTMLAudioElement,
25
+ vidoeSource?: HTMLVideoElement,
26
+ TUIMessageListConfig?: MessageListProps,
27
+ uploadPenddingMessageList?: Array<Message>,
20
28
  }
21
29
 
22
30
  export const TUIChatStateContext = React.createContext<TUIChatStateContextValue>(null);
@@ -1,5 +1,9 @@
1
1
  import React, { PropsWithChildren, useContext } from 'react';
2
- import { ChatSDK, Conversation, Profile } from 'tim-js-sdk';
2
+ import {
3
+ ChatSDK,
4
+ Conversation,
5
+ Profile,
6
+ } from 'tim-js-sdk';
3
7
 
4
8
  export interface TUIKitContextValue {
5
9
  tim: ChatSDK,
@@ -1,5 +1,13 @@
1
1
  import React, { PropsWithChildren, ReactEventHandler, useContext } from 'react';
2
2
  import { Message } from 'tim-js-sdk';
3
+ import { MessagePluginsProps } from '../components';
4
+
5
+ export enum messageShowType {
6
+ IN = 'in',
7
+ OUT = 'out',
8
+ ALL = 'all',
9
+ NONE = 'none',
10
+ }
3
11
 
4
12
  export interface TUIMessageContextValue {
5
13
  message?: Message,
@@ -13,6 +21,18 @@ export interface TUIMessageContextValue {
13
21
  MergerElement?: React.ComponentType<{message: Message}>,
14
22
  LocationElement?: React.ComponentType<{message: Message}>,
15
23
  FaceElement?: React.ComponentType<{message: Message}>,
24
+ filter?: (data:Message) => void,
25
+ isShowTime?: boolean,
26
+ isShowRead?: boolean,
27
+ plugin?: MessagePluginsProps,
28
+ prefix?: React.ReactElement | string,
29
+ suffix?: React.ReactElement | string,
30
+ customName?: React.ReactElement,
31
+ showAvatar?: messageShowType,
32
+ showName?: messageShowType,
33
+ customAvatar?: React.ReactElement,
34
+ isShowProgress?: boolean,
35
+ Progress?: React.ComponentType<{message: Message}>,
16
36
  }
17
37
 
18
38
  export const TUIMessageContext = React.createContext<TUIMessageContextValue>(undefined);
@@ -5,6 +5,7 @@ import React, {
5
5
  KeyboardEventHandler,
6
6
  MutableRefObject,
7
7
  } from 'react';
8
+ import { PluginConfigProps } from '../components';
8
9
  import type { ICursorPos } from '../components/TUIMessageInput/hooks';
9
10
  import type { EmojiData } from '../components/TUIMessageInput/hooks/useEmojiPicker';
10
11
  import type { filesData } from '../components/TUIMessageInput/hooks/useUploadPicker';
@@ -28,11 +29,9 @@ export interface TUIMessageInputContextValue {
28
29
  insertText?: (textToInsert: string) => void,
29
30
  setText?: (textToInsert: string) => void,
30
31
  focus?: boolean,
31
- plugins?: Array<React.ReactElement>,
32
- showNumber?: number,
33
- MoreIcon?: React.ReactElement,
34
32
  handlePasete?: (e:ClipboardEvent) => void,
35
33
  setCursorPos?: (e:ICursorPos) => void,
34
+ pluginConfig?: PluginConfigProps,
36
35
  }
37
36
 
38
37
  export const TUIMessageInputContext = React.createContext<TUIMessageInputContextValue>(undefined);