tuikit-atomicx-vue3 0.1.1 → 3.3.0-beta.3

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 (455) hide show
  1. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-XRL7A5Gj.js +123 -0
  2. package/dist/{PopoverTrigger-ByOI-vdB.js → PopoverTrigger-BKOIHfdS.js} +1 -1
  3. package/dist/{PopperContent-BaiCn-CA.js → PopperContent-DtL7HVWz.js} +29 -21
  4. package/dist/baseComp/TuiSwitch.js +2 -2
  5. package/dist/baseComp/index.d.ts +0 -1
  6. package/dist/baseComp/index.js +1 -3
  7. package/dist/chat/index.d.ts +2230 -4090
  8. package/dist/chat/index.js +16 -8
  9. package/dist/components/Avatar/Avatar.js +35 -10
  10. package/dist/components/Avatar/Avatar.vue.d.ts +1 -1
  11. package/dist/components/BarrageInput/BarrageInput.vue.d.ts +2 -2
  12. package/dist/components/BarrageInput/BarrageInputH5.js +30 -10
  13. package/dist/components/BarrageInput/BarrageInputH5.vue.d.ts +2 -2
  14. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +1 -1
  15. package/dist/components/BarrageInput/TextEditor/index.js +13 -5
  16. package/dist/components/BarrageInput/constants.d.ts +3 -0
  17. package/dist/components/BarrageInput/constants.js +6 -0
  18. package/dist/components/BarrageInput/i18n/en-US/index.d.ts +2 -0
  19. package/dist/components/BarrageInput/i18n/en-US/index.js +3 -1
  20. package/dist/components/BarrageInput/i18n/zh-CN/index.d.ts +2 -0
  21. package/dist/components/BarrageInput/i18n/zh-CN/index.js +3 -1
  22. package/dist/components/BarrageInput/index.d.ts +18 -18
  23. package/dist/components/BarrageList/BarrageList.js +5 -6
  24. package/dist/components/BarrageList/BarrageListH5.js +5 -6
  25. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +1 -1
  26. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +5 -4
  27. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +2 -2
  28. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +7 -4
  29. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +1 -1
  30. package/dist/components/ChatSetting/ChatSetting.js +8 -11
  31. package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +2 -1
  32. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +2 -1
  33. package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +2 -2
  34. package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +2 -1
  35. package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +2 -2
  36. package/dist/components/ChatSetting/SettingItem/SettingItem.js +116 -89
  37. package/dist/components/ChatSetting/i18n/index.d.ts +191 -1
  38. package/dist/components/ChatSetting/i18n/index.js +3 -4
  39. package/dist/components/ChatSetting/index.js +4 -0
  40. package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.js +78 -0
  41. package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue.d.ts +33 -0
  42. package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.d.ts +1 -0
  43. package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.js +4 -0
  44. package/dist/components/ContactList/ContactInfo/ContactInfo.js +257 -0
  45. package/dist/components/ContactList/ContactInfo/ContactInfo.vue.d.ts +56 -0
  46. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.js +96 -0
  47. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue.d.ts +37 -0
  48. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.d.ts +1 -0
  49. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.js +4 -0
  50. package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.js +228 -0
  51. package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue.d.ts +39 -0
  52. package/dist/components/ContactList/ContactInfo/FriendInfo/index.d.ts +1 -0
  53. package/dist/components/ContactList/ContactInfo/FriendInfo/index.js +4 -0
  54. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.js +101 -0
  55. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue.d.ts +37 -0
  56. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.d.ts +1 -0
  57. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.js +4 -0
  58. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +154 -0
  59. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue.d.ts +37 -0
  60. package/dist/components/ContactList/ContactInfo/GroupInfo/index.d.ts +1 -0
  61. package/dist/components/ContactList/ContactInfo/GroupInfo/index.js +4 -0
  62. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.js +141 -0
  63. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue.d.ts +32 -0
  64. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.d.ts +1 -0
  65. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.js +4 -0
  66. package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.js +122 -0
  67. package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue.d.ts +33 -0
  68. package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.d.ts +1 -0
  69. package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.js +4 -0
  70. package/dist/components/ContactList/ContactInfo/index.d.ts +8 -0
  71. package/dist/components/ContactList/ContactInfo/index.js +18 -0
  72. package/dist/components/ContactList/ContactList.js +281 -0
  73. package/dist/components/ContactList/ContactList.vue.d.ts +41 -0
  74. package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.js +52 -0
  75. package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue.d.ts +25 -0
  76. package/dist/components/ContactList/ContactListItem/BlacklistItem/index.d.ts +1 -0
  77. package/dist/components/ContactList/ContactListItem/BlacklistItem/index.js +4 -0
  78. package/dist/components/ContactList/ContactListItem/ContactListItem.js +4 -0
  79. package/dist/components/ContactList/ContactListItem/ContactListItem.vue.d.ts +30 -0
  80. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.js +76 -0
  81. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue.d.ts +27 -0
  82. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.d.ts +1 -0
  83. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.js +4 -0
  84. package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.js +53 -0
  85. package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.vue.d.ts +25 -0
  86. package/dist/components/ContactList/ContactListItem/FriendItem/index.d.ts +1 -0
  87. package/dist/components/ContactList/ContactListItem/FriendItem/index.js +4 -0
  88. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.js +79 -0
  89. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue.d.ts +27 -0
  90. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.d.ts +1 -0
  91. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.js +4 -0
  92. package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.js +52 -0
  93. package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.vue.d.ts +25 -0
  94. package/dist/components/ContactList/ContactListItem/GroupItem/index.d.ts +1 -0
  95. package/dist/components/ContactList/ContactListItem/GroupItem/index.js +4 -0
  96. package/dist/components/ContactList/ContactListItem/index.d.ts +6 -0
  97. package/dist/components/ContactList/ContactListItem/index.js +95 -0
  98. package/dist/components/ContactList/ContactSearch/ContactSearch.js +85 -0
  99. package/dist/components/ContactList/ContactSearch/ContactSearch.vue.d.ts +8 -0
  100. package/dist/components/ContactList/ContactSearch/index.d.ts +1 -0
  101. package/dist/components/ContactList/ContactSearch/index.js +4 -0
  102. package/dist/components/ContactList/constants/const.d.ts +3 -0
  103. package/dist/components/ContactList/constants/const.js +6 -0
  104. package/dist/components/ContactList/hooks/index.d.ts +1 -0
  105. package/dist/components/ContactList/hooks/index.js +4 -0
  106. package/dist/components/ContactList/hooks/useContactList.d.ts +9 -0
  107. package/dist/components/ContactList/hooks/useContactList.js +18 -0
  108. package/dist/components/ContactList/i18n/en-US.d.ts +77 -0
  109. package/dist/components/ContactList/i18n/en-US.js +80 -0
  110. package/dist/components/ContactList/i18n/index.d.ts +4 -0
  111. package/dist/components/ContactList/i18n/index.js +6 -0
  112. package/dist/components/ContactList/i18n/zh-CN.d.ts +77 -0
  113. package/dist/components/ContactList/i18n/zh-CN.js +80 -0
  114. package/dist/components/ContactList/index.d.ts +310 -0
  115. package/dist/components/ContactList/index.js +16 -0
  116. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +31 -46
  117. package/dist/components/ConversationList/ConversationActions/ConversationActions.vue.d.ts +1 -10
  118. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +160 -100
  119. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.vue.d.ts +0 -3
  120. package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.js +79 -17
  121. package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue.d.ts +6 -12
  122. package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.js +78 -158
  123. package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue.d.ts +5 -4
  124. package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.js +38 -207
  125. package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue.d.ts +3 -9
  126. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.js +35 -23
  127. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue.d.ts +2 -11
  128. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/index.js +1 -2
  129. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.d.ts +2 -7
  130. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.js +6 -14
  131. package/dist/components/ConversationList/ConversationCreate/index.d.ts +0 -2
  132. package/dist/components/ConversationList/ConversationCreate/index.js +5 -9
  133. package/dist/components/ConversationList/ConversationList.js +51 -39
  134. package/dist/components/ConversationList/ConversationList.vue.d.ts +654 -1510
  135. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +4 -4
  136. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +1 -1
  137. package/dist/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.js +2 -2
  138. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +596 -1404
  139. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +1 -1
  140. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +13 -29
  141. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +146 -348
  142. package/dist/components/ConversationList/ConversationPreview/index.js +3 -3
  143. package/dist/components/ConversationList/ConversationPreview/utils.js +8 -8
  144. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +5 -5
  145. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.vue.d.ts +8 -8
  146. package/dist/components/ConversationList/hooks/useConversation.d.ts +6 -0
  147. package/dist/components/ConversationList/hooks/useConversation.js +20 -0
  148. package/dist/components/ConversationList/hooks/useConversationCreate.d.ts +5 -0
  149. package/dist/components/ConversationList/hooks/useConversationCreate.js +24 -0
  150. package/dist/components/ConversationList/i18n/en-US.d.ts +16 -0
  151. package/dist/components/ConversationList/i18n/en-US.js +25 -7
  152. package/dist/components/ConversationList/i18n/zh-CN.d.ts +16 -0
  153. package/dist/components/ConversationList/i18n/zh-CN.js +24 -6
  154. package/dist/components/ConversationList/index.d.ts +2096 -4595
  155. package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.js +1 -1
  156. package/dist/components/LiveCoreView/index.d.ts +4 -0
  157. package/dist/components/{LiveStreamView → LiveCoreView}/index.js +68 -74
  158. package/dist/components/LiveList/LiveList.js +71 -45
  159. package/dist/components/LiveList/LiveListH5.js +14 -15
  160. package/dist/components/LiveScenePanel/CameraSettingDialog.js +1 -2
  161. package/dist/components/LiveScenePanel/icons/AddIcon.js +2 -2
  162. package/dist/components/LiveScenePanel/icons/CameraIcon.js +2 -2
  163. package/dist/components/LiveScenePanel/icons/CameraMirror.js +2 -2
  164. package/dist/components/LiveScenePanel/icons/CameraUnmirror.js +2 -2
  165. package/dist/components/LiveScenePanel/icons/ImageIcon.js +2 -2
  166. package/dist/components/LiveScenePanel/icons/MoreIcon.js +2 -2
  167. package/dist/components/LiveScenePanel/icons/ScreenIcon.js +2 -2
  168. package/dist/components/MessageInput/AttachmentPicker/index.js +1 -1
  169. package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +1 -1
  170. package/dist/components/MessageInput/MessageInput.js +1 -1
  171. package/dist/components/MessageInput/QuotedMessagePreview/index.js +2 -2
  172. package/dist/components/MessageInput/SendButton/index.js +1 -1
  173. package/dist/components/MessageInput/TextEditor/index.js +6 -5
  174. package/dist/components/MessageInput/i18n/index.d.ts +24 -1
  175. package/dist/components/MessageInput/i18n/index.js +7 -8
  176. package/dist/components/MessageInput/index.d.ts +409 -6
  177. package/dist/components/MessageInput/index.js +23 -125
  178. package/dist/components/MessageList/Message/AudioMessage/PlayButton.js +3 -3
  179. package/dist/components/MessageList/Message/ImageMessage/ImageMessage.js +2 -2
  180. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +3 -3
  181. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +5 -5
  182. package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +1 -1
  183. package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.js +34 -30
  184. package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -10
  185. package/dist/components/MessageList/MessageForward/MessageForward.js +4 -4
  186. package/dist/components/MessageList/MessageList.js +66 -60
  187. package/dist/components/MessageList/MessageList.vue.d.ts +3 -3
  188. package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.js +32 -0
  189. package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.vue.d.ts +6 -0
  190. package/dist/components/MessageList/ScrollToBottom/index.d.ts +3 -0
  191. package/dist/components/MessageList/ScrollToBottom/index.js +4 -0
  192. package/dist/components/MessageList/i18n/en-US.d.ts +5 -0
  193. package/dist/components/MessageList/i18n/en-US.js +6 -1
  194. package/dist/components/MessageList/i18n/index.d.ts +85 -1
  195. package/dist/components/MessageList/i18n/index.js +7 -8
  196. package/dist/components/MessageList/i18n/zh-CN.d.ts +5 -0
  197. package/dist/components/MessageList/i18n/zh-CN.js +6 -1
  198. package/dist/components/MessageList/index.js +4 -0
  199. package/dist/components/Search/Search.js +4 -4
  200. package/dist/components/Search/Search.vue.d.ts +4 -4
  201. package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +15 -9
  202. package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +12 -7
  203. package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +2 -2
  204. package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +10 -5
  205. package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +10 -10
  206. package/dist/components/Search/SearchBar/SearchBar.js +3 -2
  207. package/dist/components/Search/SearchResults/EmptyResult/EmptyResult.js +1 -1
  208. package/dist/components/Search/SearchResults/SearchResults.js +82 -69
  209. package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +8 -8
  210. package/dist/components/Search/SearchResults/SearchResultsItem/utils/highlightText.d.ts +5 -6
  211. package/dist/components/Search/i18n/en-US/Search.js +9 -9
  212. package/dist/components/Search/i18n/zh-CN/Search.js +13 -13
  213. package/dist/components/Search/index.d.ts +6 -6
  214. package/dist/components/StreamMixer/LocalMixer/MixerControl.js +14 -10
  215. package/dist/components/StreamMixer/LocalMixer/index.js +81 -56
  216. package/dist/components/StreamMixer/icons/CameraMirror.js +2 -2
  217. package/dist/components/StreamMixer/icons/Delete.js +2 -2
  218. package/dist/components/StreamMixer/icons/Down.js +2 -2
  219. package/dist/components/StreamMixer/icons/Rotation.js +2 -2
  220. package/dist/components/StreamMixer/icons/Up.js +2 -2
  221. package/dist/components/StreamMixer/index.js +2 -2
  222. package/dist/components/StreamView/common/StreamCover/index.js +2 -2
  223. package/dist/components/UserPicker/components/TreeMode/TreeNode.js +2 -2
  224. package/dist/components/UserPicker/i18n/index.d.ts +15 -1
  225. package/dist/components/UserPicker/i18n/index.js +3 -4
  226. package/dist/components/UserPicker/index.d.ts +0 -1
  227. package/dist/components/UserPicker/index.js +6 -3
  228. package/dist/components/VideoSettingPanel/VideoPreview.js +3 -4
  229. package/dist/components/VideoSettingPanel/VideoProfile.js +3 -4
  230. package/dist/components/VideoSettingPanel/i18n/en-US/index.d.ts +5 -0
  231. package/dist/components/VideoSettingPanel/i18n/en-US/index.js +8 -3
  232. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.d.ts +5 -0
  233. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.js +8 -3
  234. package/dist/components/VideoSettingPanel/index.js +3 -3
  235. package/dist/hooks/useLongPress.d.ts +4 -4
  236. package/dist/hooks/useMessageActions.js +5 -5
  237. package/dist/hooks/useMouseHover.d.ts +7 -5
  238. package/dist/hooks/useMouseHover.js +3 -1
  239. package/dist/index.js +12 -6
  240. package/dist/rtc/index.d.ts +22 -20
  241. package/dist/rtc/index.js +6 -3
  242. package/dist/states/BarrageListState/BarrageListState.js +3 -2
  243. package/dist/states/CoHostState.d.ts +1 -1
  244. package/dist/states/CoHostState.js +59 -62
  245. package/dist/states/ContactListState/ContactListState.d.ts +16 -16
  246. package/dist/states/ContactListState/ContactListState.js +20 -20
  247. package/dist/states/ConversationListState/ConversationListState.d.ts +13 -12
  248. package/dist/states/ConversationListState/ConversationListState.js +19 -19
  249. package/dist/states/LiveSeatState/seatEventManager.js +3 -5
  250. package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +9 -0
  251. package/dist/states/LiveState/index.d.ts +4 -4
  252. package/dist/states/LiveState/index.js +4 -2
  253. package/dist/states/LoginState.js +1 -3
  254. package/dist/states/MessageInputState/MessageInputState.js +18 -18
  255. package/dist/states/SearchState.d.ts +2 -2
  256. package/dist/states/SearchState.js +124 -127
  257. package/dist/styles/index.css +1954 -1070
  258. package/dist/types/contact.d.ts +145 -9
  259. package/dist/types/conversation.d.ts +36 -28
  260. package/dist/types/conversation.js +22 -0
  261. package/dist/types/index.js +5 -3
  262. package/dist/types/live.d.ts +2 -3
  263. package/dist/types/types.d.ts +0 -8
  264. package/dist/types/types.js +0 -10
  265. package/dist/utils/time.d.ts +2 -2
  266. package/dist/utils/time.js +253 -1471
  267. package/package.json +23 -5
  268. package/src/baseComp/View/View.vue +1 -2
  269. package/src/baseComp/index.ts +1 -2
  270. package/src/chat/index.ts +11 -0
  271. package/src/components/Avatar/Avatar.vue +12 -11
  272. package/src/components/BarrageInput/BarrageInputH5.vue +36 -9
  273. package/src/components/BarrageInput/TextEditor/TextEditor.vue +13 -5
  274. package/src/components/BarrageInput/constants.ts +3 -0
  275. package/src/components/BarrageInput/i18n/en-US/index.ts +2 -0
  276. package/src/components/BarrageInput/i18n/zh-CN/index.ts +2 -0
  277. package/src/components/BarrageList/BarrageList.vue +2 -2
  278. package/src/components/BarrageList/BarrageListH5.vue +2 -2
  279. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +0 -1
  280. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +5 -2
  281. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +7 -3
  282. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +3 -3
  283. package/src/components/ChatSetting/ChatSetting.vue +6 -10
  284. package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +1 -1
  285. package/src/components/ChatSetting/SettingItem/SettingItem.vue +40 -36
  286. package/src/components/ChatSetting/i18n/index.ts +3 -5
  287. package/src/components/ChatSetting/index.ts +5 -1
  288. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +50 -0
  289. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue +71 -0
  290. package/src/components/ContactList/ContactInfo/BlacklistInfo/index.ts +1 -0
  291. package/src/components/ContactList/ContactInfo/ContactInfo.scss +33 -0
  292. package/src/components/ContactList/ContactInfo/ContactInfo.vue +256 -0
  293. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +82 -0
  294. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue +88 -0
  295. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/index.ts +1 -0
  296. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.scss +92 -0
  297. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue +219 -0
  298. package/src/components/ContactList/ContactInfo/FriendInfo/index.ts +1 -0
  299. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.scss +82 -0
  300. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue +99 -0
  301. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/index.ts +1 -0
  302. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.scss +52 -0
  303. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +146 -0
  304. package/src/components/ContactList/ContactInfo/GroupInfo/index.ts +1 -0
  305. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.scss +111 -0
  306. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue +147 -0
  307. package/src/components/ContactList/ContactInfo/SearchGroupInfo/index.ts +1 -0
  308. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.scss +111 -0
  309. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue +128 -0
  310. package/src/components/ContactList/ContactInfo/SearchUserInfo/index.ts +1 -0
  311. package/src/components/ContactList/ContactInfo/index.ts +8 -0
  312. package/src/components/ContactList/ContactList.scss +124 -0
  313. package/src/components/ContactList/ContactList.vue +299 -0
  314. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.scss +39 -0
  315. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue +47 -0
  316. package/src/components/ContactList/ContactListItem/BlacklistItem/index.ts +1 -0
  317. package/src/components/ContactList/ContactListItem/ContactListItem.vue +98 -0
  318. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.scss +58 -0
  319. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue +70 -0
  320. package/src/components/ContactList/ContactListItem/FriendApplicationItem/index.ts +1 -0
  321. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.scss +39 -0
  322. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.vue +47 -0
  323. package/src/components/ContactList/ContactListItem/FriendItem/index.ts +1 -0
  324. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.scss +57 -0
  325. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue +78 -0
  326. package/src/components/ContactList/ContactListItem/GroupApplicationItem/index.ts +1 -0
  327. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.scss +39 -0
  328. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.vue +47 -0
  329. package/src/components/ContactList/ContactListItem/GroupItem/index.ts +1 -0
  330. package/src/components/ContactList/ContactListItem/index.ts +6 -0
  331. package/src/components/ContactList/ContactSearch/ContactSearch.scss +58 -0
  332. package/src/components/ContactList/ContactSearch/ContactSearch.vue +98 -0
  333. package/src/components/ContactList/ContactSearch/index.ts +1 -0
  334. package/src/components/ContactList/constants/const.ts +7 -0
  335. package/src/components/ContactList/hooks/index.ts +1 -0
  336. package/src/components/ContactList/hooks/useContactList.ts +21 -0
  337. package/src/components/ContactList/i18n/en-US.ts +77 -0
  338. package/src/components/ContactList/i18n/index.ts +4 -0
  339. package/src/components/ContactList/i18n/zh-CN.ts +77 -0
  340. package/src/components/ContactList/index.ts +18 -0
  341. package/src/components/ConversationList/ConversationActions/ConversationActions.scss +34 -35
  342. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +15 -29
  343. package/src/components/ConversationList/ConversationCreate/ConversationCreate.scss +11 -37
  344. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +154 -69
  345. package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.scss +37 -1
  346. package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue +70 -15
  347. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.scss +19 -66
  348. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue +72 -139
  349. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.scss +5 -129
  350. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +42 -183
  351. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.scss +14 -11
  352. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue +23 -18
  353. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.ts +2 -8
  354. package/src/components/ConversationList/ConversationCreate/index.ts +0 -2
  355. package/src/components/ConversationList/ConversationList.scss +1 -0
  356. package/src/components/ConversationList/ConversationList.vue +44 -25
  357. package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +2 -5
  358. package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +2 -2
  359. package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
  360. package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +6 -19
  361. package/src/components/ConversationList/ConversationPreview/utils.ts +11 -11
  362. package/src/components/ConversationList/hooks/useConversation.ts +21 -0
  363. package/src/components/ConversationList/hooks/useConversationCreate.ts +29 -0
  364. package/src/components/ConversationList/i18n/en-US.ts +26 -6
  365. package/src/components/ConversationList/i18n/zh-CN.ts +25 -5
  366. package/src/components/{LiveStreamView → LiveCoreView}/index.ts +4 -3
  367. package/src/components/{LiveStreamView → LiveCoreView}/index.vue +109 -88
  368. package/src/components/LiveList/LiveList.vue +94 -38
  369. package/src/components/LiveList/LiveListH5.vue +47 -23
  370. package/src/components/MessageInput/MessageInput.module.scss +1 -1
  371. package/src/components/MessageInput/QuotedMessagePreview/QuotedMessagePreview.vue +2 -2
  372. package/src/components/MessageInput/SendButton/SendButton.vue +1 -1
  373. package/src/components/MessageInput/TextEditor/Editor.scss +3 -2
  374. package/src/components/MessageInput/TextEditor/TextEditor.module.scss +1 -0
  375. package/src/components/MessageInput/TextEditor/TextEditor.vue +2 -0
  376. package/src/components/MessageInput/i18n/index.ts +1 -7
  377. package/src/components/MessageInput/index.ts +25 -8
  378. package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +4 -4
  379. package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +0 -1
  380. package/src/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +16 -17
  381. package/src/components/MessageList/MessageForward/MessageForward.vue +2 -2
  382. package/src/components/MessageList/MessageList.vue +21 -5
  383. package/src/components/MessageList/ScrollToBottom/ScrollToBottom.vue +50 -0
  384. package/src/components/MessageList/ScrollToBottom/index.ts +5 -0
  385. package/src/components/MessageList/i18n/en-US.ts +5 -0
  386. package/src/components/MessageList/i18n/index.ts +1 -5
  387. package/src/components/MessageList/i18n/zh-CN.ts +5 -0
  388. package/src/components/MessageList/index.ts +4 -1
  389. package/src/components/Search/Search.vue +0 -4
  390. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.vue +125 -38
  391. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.vue +24 -16
  392. package/src/components/Search/SearchAdvanced/SearchAdvanced.vue +9 -7
  393. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.vue +4 -3
  394. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +0 -1
  395. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.vue +57 -23
  396. package/src/components/Search/SearchBar/SearchBar.scss +0 -2
  397. package/src/components/Search/SearchBar/SearchBar.vue +7 -5
  398. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +4 -2
  399. package/src/components/Search/SearchResults/SearchResults.scss +5 -11
  400. package/src/components/Search/SearchResults/SearchResults.vue +25 -29
  401. package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +1 -9
  402. package/src/components/Search/SearchResults/SearchResultsItem/utils/highlightText.ts +15 -16
  403. package/src/components/Search/i18n/en-US/Search.ts +9 -9
  404. package/src/components/Search/i18n/zh-CN/Search.ts +13 -13
  405. package/src/components/StreamMixer/LocalMixer/MixerControl.vue +20 -15
  406. package/src/components/StreamMixer/LocalMixer/index.vue +130 -57
  407. package/src/components/StreamMixer/index.vue +3 -3
  408. package/src/components/UserPicker/i18n/index.ts +1 -5
  409. package/src/components/UserPicker/index.ts +4 -3
  410. package/src/components/VideoSettingPanel/VideoPreview.vue +13 -8
  411. package/src/components/VideoSettingPanel/VideoProfile.vue +5 -5
  412. package/src/components/VideoSettingPanel/i18n/en-US/index.ts +8 -3
  413. package/src/components/VideoSettingPanel/i18n/zh-CN/index.ts +8 -3
  414. package/src/components/VideoSettingPanel/index.vue +15 -9
  415. package/src/hooks/useLongPress.ts +7 -18
  416. package/src/hooks/useMessageActions.ts +5 -5
  417. package/src/hooks/useMouseHover.ts +9 -7
  418. package/src/rtc/index.ts +6 -3
  419. package/src/types/contact.ts +175 -12
  420. package/src/types/conversation.ts +42 -32
  421. package/src/types/live.ts +3 -5
  422. package/src/types/types.ts +0 -28
  423. package/src/utils/time.ts +8 -10
  424. package/dist/baseComp/Popup/Popup.js +0 -132
  425. package/dist/baseComp/Popup/Popup.vue.d.ts +0 -54
  426. package/dist/baseComp/Popup/index.d.ts +0 -2
  427. package/dist/baseComp/Popup/index.js +0 -4
  428. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.js +0 -65
  429. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue.d.ts +0 -17
  430. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.d.ts +0 -1
  431. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.js +0 -4
  432. package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.d.ts +0 -9
  433. package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.js +0 -96
  434. package/dist/components/ConversationList/ConversationCreate/static/word.d.ts +0 -6
  435. package/dist/components/ConversationList/ConversationCreate/static/word.js +0 -4
  436. package/dist/components/LiveStreamView/index.d.ts +0 -4
  437. package/src/baseComp/Popup/Popup.vue +0 -156
  438. package/src/baseComp/Popup/index.ts +0 -2
  439. package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.scss +0 -36
  440. package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue +0 -44
  441. package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.ts +0 -1
  442. package/src/components/ConversationList/ConversationCreate/hooks/useConversationCreate.ts +0 -132
  443. package/src/components/ConversationList/ConversationCreate/static/word.ts +0 -300
  444. /package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue.d.ts +0 -0
  445. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.d.ts +0 -0
  446. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.js +0 -0
  447. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.d.ts +0 -0
  448. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.js +0 -0
  449. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.d.ts +0 -0
  450. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.js +0 -0
  451. /package/dist/components/{LiveStreamView → LiveCoreView}/index.vue.d.ts +0 -0
  452. /package/src/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue +0 -0
  453. /package/src/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.ts +0 -0
  454. /package/src/components/{LiveStreamView → LiveCoreView}/i18n/index.ts +0 -0
  455. /package/src/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.ts +0 -0
@@ -0,0 +1,82 @@
1
+ @use '../../../../styles/mixins' as mixins;
2
+ .contact-friend-application-info {
3
+ height: 100%;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ display: flex;
7
+ flex-direction: column;
8
+ background-color: var(--bg-color-topbar);
9
+ padding: 48px;
10
+ }
11
+
12
+ .contact-friend-application-info__header {
13
+ display: flex;
14
+ justify-content: space-between;
15
+ align-items: flex-start;
16
+ gap: 20px;
17
+ margin-bottom: 32px;
18
+ }
19
+
20
+ .contact-friend-application-info__main-info {
21
+ flex: 1;
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 20px;
25
+ width: 0;
26
+ }
27
+
28
+ .contact-friend-application-info__name {
29
+ font-size: 24px;
30
+ font-weight: 400;
31
+ color: var(--text-color-primary);
32
+ max-width: 100%;
33
+ @include mixins.text-ellipsis();
34
+ }
35
+
36
+ .contact-friend-application-info__id,
37
+ .contact-friend-application-info__intro {
38
+ font-size: 16px;
39
+ color: var(--text-color-tertiary);
40
+ width: 100%;
41
+ word-break: break-word;
42
+ @include mixins.multi-line-ellipsis(3);
43
+ }
44
+
45
+ .contact-friend-application-info__rows {
46
+ border-top: 1px solid var(--stroke-color-secondary);
47
+ padding: 32px 0 64px;
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: 8px;
51
+ }
52
+
53
+ .contact-friend-application-info__row {
54
+ display: flex;
55
+ align-items: center;
56
+ line-height: 32px;
57
+ gap: 20px;
58
+ }
59
+
60
+ .contact-friend-application-info__row-label {
61
+ font-size: 14px;
62
+ color: var(--text-color-tertiary);
63
+ font-weight: 400;
64
+ }
65
+
66
+ .contact-friend-application-info__row-value {
67
+ flex: 1;
68
+ min-width: 0;
69
+ font-size: 14px;
70
+ font-weight: 400;
71
+ color: var(--text-color-secondary);
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 8px;
75
+ }
76
+
77
+ .contact-friend-application-info__actions {
78
+ display: flex;
79
+ gap: 12px;
80
+ justify-content: center;
81
+ align-items: center;
82
+ }
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <div class="contact-friend-application-info">
3
+ <div class="contact-friend-application-info__header">
4
+ <div class="contact-friend-application-info__main-info">
5
+ <div class="contact-friend-application-info__name">
6
+ {{ application?.nick || application?.userID }}
7
+ </div>
8
+ <div class="contact-friend-application-info__id">
9
+ {{ t('TUIContact.ID') }}:{{ application?.userID }}
10
+ </div>
11
+ </div>
12
+ <Avatar
13
+ :src="application.avatar"
14
+ :alt="application?.nick || application.userID"
15
+ size="xl"
16
+ />
17
+ </div>
18
+ <div class="contact-friend-application-info__rows">
19
+ <div class="contact-friend-application-info__row">
20
+ <div class="contact-friend-application-info__row-label">
21
+ {{ t('TUIContact.Verification info') }}:
22
+ </div>
23
+ <div class="contact-friend-application-info__row-value">
24
+ {{ application?.wording || t('TUIContact.None') }}
25
+ </div>
26
+ </div>
27
+ </div>
28
+ <div
29
+ v-if="showActions"
30
+ class="contact-friend-application-info__actions"
31
+ >
32
+ <TUIButton
33
+ type="default"
34
+ size="big"
35
+ color="red"
36
+ @click="handleRefuse"
37
+ >
38
+ {{ t('TUIContact.Refuse') }}
39
+ </TUIButton>
40
+ <TUIButton
41
+ type="primary"
42
+ size="big"
43
+ @click="handleAccept"
44
+ >
45
+ {{ t('TUIContact.Agree') }}
46
+ </TUIButton>
47
+ </div>
48
+ </div>
49
+ </template>
50
+
51
+ <script setup lang="ts">
52
+ import { useUIKit, TUIButton } from '@tencentcloud/uikit-base-component-vue3';
53
+ import { useContactListState } from '../../../../states/ContactListState';
54
+ import { Avatar } from '../../../Avatar';
55
+ import type { FriendApplication, FriendApplicationInfoProps } from '../../../../types/contact';
56
+
57
+ const props = withDefaults(defineProps<FriendApplicationInfoProps>(), {
58
+ showActions: true,
59
+ });
60
+
61
+ const emit = defineEmits<{
62
+ accept: [application: FriendApplication];
63
+ refuse: [application: FriendApplication];
64
+ friendApplicationAction: [action: 'accept' | 'refuse', application: FriendApplication];
65
+ close: [];
66
+ }>();
67
+
68
+ const { t } = useUIKit();
69
+ const { acceptFriendApplication, refuseFriendApplication } = useContactListState();
70
+
71
+ const handleAccept = () => {
72
+ emit('accept', props.application);
73
+ emit('friendApplicationAction', 'accept', props.application);
74
+ acceptFriendApplication(props.application);
75
+ emit('close');
76
+ };
77
+
78
+ const handleRefuse = () => {
79
+ emit('refuse', props.application);
80
+ emit('friendApplicationAction', 'refuse', props.application);
81
+ refuseFriendApplication(props.application.userID);
82
+ emit('close');
83
+ };
84
+ </script>
85
+
86
+ <style scoped lang="scss">
87
+ @import './FriendApplicationInfo.scss';
88
+ </style>
@@ -0,0 +1 @@
1
+ export { default as FriendApplicationInfo } from './FriendApplicationInfo.vue';
@@ -0,0 +1,92 @@
1
+ @use '../../../../styles/mixins' as mixins;
2
+ .contact-friend-info {
3
+ height: 100%;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ display: flex;
7
+ flex-direction: column;
8
+ background-color: var(--bg-color-topbar);
9
+ padding: 48px;
10
+ }
11
+
12
+ .contact-friend-info__header {
13
+ display: flex;
14
+ justify-content: space-between;
15
+ align-items: flex-start;
16
+ gap: 20px;
17
+ margin-bottom: 32px;
18
+ }
19
+
20
+ .contact-friend-info__main-info {
21
+ flex: 1;
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 20px;
25
+ width: 0;
26
+ }
27
+
28
+ .contact-friend-info__name {
29
+ font-size: 24px;
30
+ font-weight: 400;
31
+ color: var(--text-color-primary);
32
+ max-width: 100%;
33
+ @include mixins.text-ellipsis();
34
+ }
35
+
36
+ .contact-friend-info__id,
37
+ .contact-friend-info__intro {
38
+ font-size: 16px;
39
+ color: var(--text-color-tertiary);
40
+ width: 100%;
41
+ word-break: break-word;
42
+ @include mixins.multi-line-ellipsis(3);
43
+ }
44
+
45
+ .contact-friend-info__rows {
46
+ border-top: 1px solid var(--stroke-color-secondary);
47
+ padding: 32px 0 64px;
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: 8px;
51
+ }
52
+
53
+ .contact-friend-info__row {
54
+ display: flex;
55
+ align-items: center;
56
+ line-height: 32px;
57
+ gap: 20px;
58
+ }
59
+
60
+ .contact-friend-info__row-label {
61
+ font-size: 14px;
62
+ color: var(--text-color-tertiary);
63
+ font-weight: 400;
64
+ }
65
+
66
+ .contact-friend-info__row-value {
67
+ flex: 1;
68
+ width: 0;
69
+ font-size: 14px;
70
+ font-weight: 400;
71
+ color: var(--text-color-secondary);
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 8px;
75
+ }
76
+
77
+ .remark-edit {
78
+ max-width: 100%;
79
+ overflow: hidden;
80
+ text-overflow: ellipsis;
81
+ white-space: nowrap;
82
+ word-break: break-all;
83
+ }
84
+ .remark-edit-icon {
85
+ min-width: 16px;
86
+ }
87
+
88
+ .contact-friend-info__actions {
89
+ display: flex;
90
+ gap: 12px;
91
+ justify-content: center;
92
+ }
@@ -0,0 +1,219 @@
1
+ <template>
2
+ <div class="contact-friend-info">
3
+ <div class="contact-friend-info__header">
4
+ <div class="contact-friend-info__main-info">
5
+ <div class="contact-friend-info__name">
6
+ {{ displayName }}
7
+ </div>
8
+ <div class="contact-friend-info__id">
9
+ {{ t('TUIContact.ID') }}:{{ friend.userID }}
10
+ </div>
11
+ <div class="contact-friend-info__intro">
12
+ {{ t('TUIContact.Personal signature') }}:{{ friend?.selfSignature || '' }}
13
+ </div>
14
+ </div>
15
+ <Avatar
16
+ :src="friend.avatar"
17
+ :alt="displayName"
18
+ size="xl"
19
+ />
20
+ </div>
21
+
22
+ <div class="contact-friend-info__rows">
23
+ <div class="contact-friend-info__row">
24
+ <div class="contact-friend-info__row-label">
25
+ {{ t('TUIContact.Remark name') }}
26
+ </div>
27
+ <div class="contact-friend-info__row-value">
28
+ <template v-if="isEditing">
29
+ <TUIInput
30
+ v-model="remarkInput"
31
+ :max-length="32"
32
+ :disabled="remarkLoading"
33
+ auto-focus
34
+ @blur="handleRemarkSave"
35
+ @keydown.enter="handleRemarkSave"
36
+ />
37
+ <TUIButton
38
+ size="small"
39
+ type="primary"
40
+ :loading="remarkLoading"
41
+ @click="handleRemarkSave"
42
+ >
43
+ {{ t('TUIContact.Save') }}
44
+ </TUIButton>
45
+ </template>
46
+ <template v-else>
47
+ <span class="remark-edit">
48
+ {{ remark || t('TUIContact.None') }}
49
+ </span>
50
+ <IconEditNameCard
51
+ class="remark-edit-icon"
52
+ @click="startEditRemark"
53
+ />
54
+ </template>
55
+ </div>
56
+ </div>
57
+
58
+ <div class="contact-friend-info__row">
59
+ <div class="contact-friend-info__row-label">
60
+ {{ t('TUIContact.Add to blacklist') }}
61
+ </div>
62
+ <div class="contact-friend-info__row-value">
63
+ <TUISwitch
64
+ v-model="isBlacklisted"
65
+ :disabled="blackLoading"
66
+ @change="handleBlacklistChange"
67
+ />
68
+ </div>
69
+ </div>
70
+ </div>
71
+
72
+ <div
73
+ v-if="showActions"
74
+ class="contact-friend-info__actions"
75
+ >
76
+ <TUIButton
77
+ type="default"
78
+ size="big"
79
+ color="red"
80
+ @click="visible = true;"
81
+ >
82
+ {{ t('TUIContact.Delete friend') }}
83
+ </TUIButton>
84
+ <TUIButton
85
+ type="primary"
86
+ size="big"
87
+ @click="handleSendMessage"
88
+ >
89
+ {{ t('TUIContact.Send message') }}
90
+ </TUIButton>
91
+ <TUIDialog
92
+ :visible="visible"
93
+ :title="t('TUIContact.Confirm delete friend')"
94
+ :confirm-text="t('TUIContact.Submit')"
95
+ :cancel-text="t('TUIContact.Cancel')"
96
+ @confirm="handleDeleteFriend"
97
+ @cancel="visible = false;"
98
+ @close="visible = false;"
99
+ />
100
+ </div>
101
+ </div>
102
+ </template>
103
+
104
+ <script setup lang="ts">
105
+ import { computed, ref, watch } from 'vue';
106
+ import { useUIKit, TUIButton, TUIInput, TUISwitch, IconEditNameCard, TUIDialog } from '@tencentcloud/uikit-base-component-vue3';
107
+ import { useContactListState } from '../../../../states/ContactListState';
108
+ import { useConversationListState } from '../../../../states/ConversationListState';
109
+ import { Avatar } from '../../../Avatar';
110
+ import type { Friend, FriendInfoProps } from '../../../../types';
111
+
112
+ const props = withDefaults(defineProps<FriendInfoProps>(), {
113
+ showActions: true,
114
+ });
115
+
116
+ const emit = defineEmits<{
117
+ close: [];
118
+ sendMessage: [friend: Friend];
119
+ deleteFriend: [friend: Friend];
120
+ addToBlacklist: [friend: Friend];
121
+ updateFriendRemark: [friend: Friend, remark: string];
122
+ }>();
123
+
124
+ const { t } = useUIKit();
125
+ const {
126
+ deleteFriend,
127
+ addToBlacklist,
128
+ removeFromBlacklist,
129
+ setFriendRemark,
130
+ blackList,
131
+ } = useContactListState();
132
+ const { setActiveConversation } = useConversationListState();
133
+
134
+ const isEditing = ref(false);
135
+ const currentUserID = ref('');
136
+ const remark = ref(props.friend.remark || '');
137
+ const remarkInput = ref(props.friend.remark || '');
138
+ const remarkLoading = ref(false);
139
+ const blackLoading = ref(false);
140
+ const visible = ref(false);
141
+
142
+ watch(() => props.friend.remark, (newRemark) => {
143
+ remark.value = newRemark || '';
144
+ remarkInput.value = newRemark || '';
145
+ });
146
+
147
+ watch(() => props.friend.userID, () => {
148
+ if (props.friend.userID !== currentUserID.value) {
149
+ isEditing.value = false;
150
+ }
151
+ currentUserID.value = props.friend.userID;
152
+ });
153
+
154
+ const displayName = computed(() => remark.value || props.friend?.nick || props.friend.userID);
155
+
156
+ const isBlacklisted = computed(() => blackList.value.some(item => item.userID === props.friend.userID));
157
+
158
+ const startEditRemark = () => {
159
+ remarkInput.value = remark.value;
160
+ isEditing.value = true;
161
+ };
162
+
163
+ const handleRemarkSave = async () => {
164
+ if (remarkInput.value.trim() === remark.value) {
165
+ isEditing.value = false;
166
+ return;
167
+ }
168
+
169
+ remarkLoading.value = true;
170
+ try {
171
+ await setFriendRemark({ userID: props.friend.userID, remark: remarkInput.value.trim() });
172
+ remark.value = remarkInput.value.trim();
173
+ isEditing.value = false;
174
+ emit('updateFriendRemark', { ...props.friend, remark: remarkInput.value.trim() }, remarkInput.value.trim());
175
+ } catch (err) {
176
+ console.error('[ContactInfo setFriendRemark] error', err);
177
+ } finally {
178
+ remarkLoading.value = false;
179
+ }
180
+ };
181
+
182
+ const handleBlacklistChange = async (checked: string | number | boolean) => {
183
+ blackLoading.value = true;
184
+ try {
185
+ if (checked) {
186
+ await addToBlacklist([props.friend.userID]);
187
+ emit('addToBlacklist', props.friend);
188
+ } else {
189
+ await removeFromBlacklist([props.friend.userID]);
190
+ }
191
+ } catch (err) {
192
+ console.error(`[ContactInfo ${checked ? 'addToBlacklist' : 'removeFromBlacklist'}] error`, err);
193
+ } finally {
194
+ blackLoading.value = false;
195
+ }
196
+ };
197
+
198
+ const handleDeleteFriend = async () => {
199
+ try {
200
+ await deleteFriend({ userIDList: [props.friend.userID] });
201
+ emit('deleteFriend', props.friend);
202
+ } catch (err) {
203
+ console.error('[ContactInfo deleteFriend] error', err);
204
+ }
205
+
206
+ visible.value = false;
207
+ emit('close');
208
+ };
209
+
210
+ const handleSendMessage = () => {
211
+ emit('sendMessage', props.friend);
212
+ setActiveConversation(`C2C${props.friend.userID}`);
213
+ emit('close');
214
+ };
215
+ </script>
216
+
217
+ <style scoped lang="scss">
218
+ @import './FriendInfo.scss';
219
+ </style>
@@ -0,0 +1 @@
1
+ export { default as FriendInfo } from './FriendInfo.vue';
@@ -0,0 +1,82 @@
1
+ @use '../../../../styles/mixins' as mixins;
2
+ .contact-group-application-info {
3
+ height: 100%;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ display: flex;
7
+ flex-direction: column;
8
+ background-color: var(--bg-color-topbar);
9
+ padding: 48px;
10
+ }
11
+
12
+ .contact-group-application-info__header {
13
+ display: flex;
14
+ justify-content: space-between;
15
+ align-items: flex-start;
16
+ gap: 20px;
17
+ margin-bottom: 32px;
18
+ }
19
+
20
+ .contact-group-application-info__main-info {
21
+ flex: 1;
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 20px;
25
+ width: 0;
26
+ }
27
+
28
+ .contact-group-application-info__name {
29
+ font-size: 24px;
30
+ font-weight: 400;
31
+ color: var(--text-color-primary);
32
+ max-width: 100%;
33
+ @include mixins.text-ellipsis();
34
+ }
35
+
36
+ .contact-group-application-info__id,
37
+ .contact-group-application-info__intro {
38
+ font-size: 16px;
39
+ color: var(--text-color-tertiary);
40
+ width: 100%;
41
+ word-break: break-word;
42
+ @include mixins.multi-line-ellipsis(3);
43
+ }
44
+
45
+ .contact-group-application-info__rows {
46
+ border-top: 1px solid var(--stroke-color-secondary);
47
+ padding: 32px 0 64px;
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: 8px;
51
+ }
52
+
53
+ .contact-group-application-info__row {
54
+ display: flex;
55
+ align-items: center;
56
+ line-height: 32px;
57
+ gap: 20px;
58
+ }
59
+
60
+ .contact-group-application-info__row-label {
61
+ font-size: 14px;
62
+ color: var(--text-color-tertiary);
63
+ font-weight: 400;
64
+ }
65
+
66
+ .contact-group-application-info__row-value {
67
+ flex: 1;
68
+ width: 0;
69
+ font-size: 14px;
70
+ font-weight: 400;
71
+ color: var(--text-color-secondary);
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 8px;
75
+ }
76
+
77
+ .contact-group-application-info__actions {
78
+ display: flex;
79
+ gap: 12px;
80
+ justify-content: center;
81
+ align-items: center;
82
+ }
@@ -0,0 +1,99 @@
1
+ <template>
2
+ <div class="contact-group-application-info">
3
+ <div class="contact-group-application-info__header">
4
+ <div class="contact-group-application-info__main-info">
5
+ <div class="contact-group-application-info__name">
6
+ {{ displayName }}
7
+ </div>
8
+ <div class="contact-group-application-info__id">
9
+ {{ t('TUIContact.ID') }}:{{ application.applicant }}
10
+ </div>
11
+ <div class="contact-group-application-info__intro">
12
+ {{ applicationText }}
13
+ </div>
14
+ </div>
15
+ <Avatar
16
+ :alt="displayName"
17
+ size="xl"
18
+ />
19
+ </div>
20
+ <div class="contact-group-application-info__rows">
21
+ <div class="contact-group-application-info__row">
22
+ <div class="contact-group-application-info__row-label">
23
+ {{ t('TUIContact.Application note') }}:
24
+ </div>
25
+ <div class="contact-group-application-info__row-value">
26
+ {{ application.note || t('TUIContact.None') }}
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <div
31
+ v-if="showActions"
32
+ class="contact-group-application-info__actions"
33
+ >
34
+ <TUIButton
35
+ type="default"
36
+ size="big"
37
+ color="red"
38
+ @click="handleRefuse"
39
+ >
40
+ {{ t('TUIContact.Refuse') }}
41
+ </TUIButton>
42
+ <TUIButton
43
+ type="primary"
44
+ size="big"
45
+ @click="handleAccept"
46
+ >
47
+ {{ t('TUIContact.Agree') }}
48
+ </TUIButton>
49
+ </div>
50
+ </div>
51
+ </template>
52
+
53
+ <script setup lang="ts">
54
+ import { computed } from 'vue';
55
+ import { useUIKit, TUIButton } from '@tencentcloud/uikit-base-component-vue3';
56
+ import { useContactListState } from '../../../../states/ContactListState';
57
+ import { Avatar } from '../../../Avatar';
58
+ import type { GroupApplication, GroupApplicationInfoProps } from '../../../../types/contact';
59
+
60
+ const props = withDefaults(defineProps<GroupApplicationInfoProps>(), {
61
+ showActions: true,
62
+ });
63
+
64
+ const emit = defineEmits<{
65
+ accept: [application: GroupApplication];
66
+ refuse: [application: GroupApplication];
67
+ groupApplicationAction: [action: 'accept' | 'refuse', application: GroupApplication];
68
+ close: [];
69
+ }>();
70
+
71
+ const { t } = useUIKit();
72
+ const { acceptGroupApplication, refuseGroupApplication } = useContactListState();
73
+
74
+ const displayName = computed(() => props.application.applicantNick || props.application.applicant);
75
+ const groupName = computed(() => props.application.groupName || props.application.groupID);
76
+ const applicationText = computed(() =>
77
+ props.application.applicationType === 0
78
+ ? `${t('TUIContact.Apply to join group')}"${groupName.value}"`
79
+ : `${t('TUIContact.Invite you to join group')}"${groupName.value}"`,
80
+ );
81
+
82
+ const handleAccept = () => {
83
+ emit('accept', props.application);
84
+ emit('groupApplicationAction', 'accept', props.application);
85
+ acceptGroupApplication({ application: props.application });
86
+ emit('close');
87
+ };
88
+
89
+ const handleRefuse = () => {
90
+ emit('refuse', props.application);
91
+ emit('groupApplicationAction', 'refuse', props.application);
92
+ refuseGroupApplication({ application: props.application });
93
+ emit('close');
94
+ };
95
+ </script>
96
+
97
+ <style scoped lang="scss">
98
+ @import './GroupApplicationInfo.scss';
99
+ </style>
@@ -0,0 +1 @@
1
+ export { default as GroupApplicationInfo } from './GroupApplicationInfo.vue';