tuikit-atomicx-vue3 0.1.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/dist/AttachmentPicker.module-BesmtGyl.js +11 -0
  2. package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CdJ4DUzE.js +76 -0
  3. package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CbNUofpK.js +76 -0
  4. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-wUJPjWbx.js +128 -0
  5. package/dist/{PopoverTrigger-ByOI-vdB.js → PopoverTrigger-BKOIHfdS.js} +1 -1
  6. package/dist/{PopperContent-BaiCn-CA.js → PopperContent-DtL7HVWz.js} +29 -21
  7. package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-CmxjbNDJ.js +76 -0
  8. package/dist/baseComp/TuiSwitch.js +2 -2
  9. package/dist/baseComp/index.d.ts +0 -1
  10. package/dist/baseComp/index.js +1 -3
  11. package/dist/chat/index.d.ts +5677 -6176
  12. package/dist/chat/index.js +24 -15
  13. package/dist/components/Avatar/Avatar.js +35 -10
  14. package/dist/components/Avatar/Avatar.vue.d.ts +1 -1
  15. package/dist/components/BarrageInput/BarrageInput.vue.d.ts +2 -2
  16. package/dist/components/BarrageInput/BarrageInputH5.js +60 -16
  17. package/dist/components/BarrageInput/BarrageInputH5.vue.d.ts +2 -2
  18. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +10 -6
  19. package/dist/components/BarrageInput/TextEditor/index.js +27 -11
  20. package/dist/components/BarrageInput/constants.d.ts +3 -0
  21. package/dist/components/BarrageInput/constants.js +6 -0
  22. package/dist/components/BarrageInput/i18n/en-US/index.d.ts +2 -0
  23. package/dist/components/BarrageInput/i18n/en-US/index.js +3 -1
  24. package/dist/components/BarrageInput/i18n/zh-CN/index.d.ts +2 -0
  25. package/dist/components/BarrageInput/i18n/zh-CN/index.js +3 -1
  26. package/dist/components/BarrageInput/index.d.ts +18 -18
  27. package/dist/components/BarrageList/BarrageList.js +5 -6
  28. package/dist/components/BarrageList/BarrageListH5.js +5 -6
  29. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +4 -4
  30. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +1 -1
  31. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +5 -4
  32. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +2 -2
  33. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +7 -4
  34. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +12 -4
  35. package/dist/components/BarrageList/i18n/en-US/index.d.ts +1 -0
  36. package/dist/components/BarrageList/i18n/en-US/index.js +2 -1
  37. package/dist/components/BarrageList/i18n/zh-CN/index.d.ts +1 -0
  38. package/dist/components/BarrageList/i18n/zh-CN/index.js +2 -1
  39. package/dist/components/ChatSetting/ChatSetting.js +8 -11
  40. package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +5 -2
  41. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +3 -2
  42. package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +4 -4
  43. package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +3 -2
  44. package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +5 -5
  45. package/dist/components/ChatSetting/SettingItem/SettingItem.js +116 -89
  46. package/dist/components/ChatSetting/i18n/en-US.js +3 -3
  47. package/dist/components/ChatSetting/i18n/index.d.ts +191 -1
  48. package/dist/components/ChatSetting/i18n/index.js +3 -4
  49. package/dist/components/ChatSetting/i18n/zh-CN.js +3 -3
  50. package/dist/components/ChatSetting/index.d.ts +1 -4
  51. package/dist/components/ChatSetting/index.js +7 -6
  52. package/dist/components/CoGuestPanel/CoGuestPanel.js +1 -1
  53. package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.js +78 -0
  54. package/dist/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue.d.ts +33 -0
  55. package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.d.ts +1 -0
  56. package/dist/components/ContactList/ContactInfo/BlacklistInfo/index.js +4 -0
  57. package/dist/components/ContactList/ContactInfo/ContactInfo.js +257 -0
  58. package/dist/components/ContactList/ContactInfo/ContactInfo.vue.d.ts +80 -0
  59. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.js +96 -0
  60. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue.d.ts +37 -0
  61. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.d.ts +1 -0
  62. package/dist/components/ContactList/ContactInfo/FriendApplicationInfo/index.js +4 -0
  63. package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.js +228 -0
  64. package/dist/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue.d.ts +39 -0
  65. package/dist/components/ContactList/ContactInfo/FriendInfo/index.d.ts +1 -0
  66. package/dist/components/ContactList/ContactInfo/FriendInfo/index.js +4 -0
  67. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.js +101 -0
  68. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue.d.ts +37 -0
  69. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.d.ts +1 -0
  70. package/dist/components/ContactList/ContactInfo/GroupApplicationInfo/index.js +4 -0
  71. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +155 -0
  72. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue.d.ts +37 -0
  73. package/dist/components/ContactList/ContactInfo/GroupInfo/index.d.ts +1 -0
  74. package/dist/components/ContactList/ContactInfo/GroupInfo/index.js +4 -0
  75. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.js +141 -0
  76. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue.d.ts +32 -0
  77. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.d.ts +1 -0
  78. package/dist/components/ContactList/ContactInfo/SearchGroupInfo/index.js +4 -0
  79. package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.js +122 -0
  80. package/dist/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue.d.ts +33 -0
  81. package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.d.ts +1 -0
  82. package/dist/components/ContactList/ContactInfo/SearchUserInfo/index.js +4 -0
  83. package/dist/components/ContactList/ContactInfo/index.d.ts +8 -0
  84. package/dist/components/ContactList/ContactInfo/index.js +18 -0
  85. package/dist/components/ContactList/ContactList.js +290 -0
  86. package/dist/components/ContactList/ContactList.vue.d.ts +149 -0
  87. package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.js +52 -0
  88. package/dist/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue.d.ts +25 -0
  89. package/dist/components/ContactList/ContactListItem/BlacklistItem/index.d.ts +1 -0
  90. package/dist/components/ContactList/ContactListItem/BlacklistItem/index.js +4 -0
  91. package/dist/components/ContactList/ContactListItem/ContactListItem.js +4 -0
  92. package/dist/components/ContactList/ContactListItem/ContactListItem.vue.d.ts +30 -0
  93. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.js +76 -0
  94. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue.d.ts +27 -0
  95. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.d.ts +1 -0
  96. package/dist/components/ContactList/ContactListItem/FriendApplicationItem/index.js +4 -0
  97. package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.js +53 -0
  98. package/dist/components/ContactList/ContactListItem/FriendItem/FriendItem.vue.d.ts +25 -0
  99. package/dist/components/ContactList/ContactListItem/FriendItem/index.d.ts +1 -0
  100. package/dist/components/ContactList/ContactListItem/FriendItem/index.js +4 -0
  101. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.js +79 -0
  102. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue.d.ts +27 -0
  103. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.d.ts +1 -0
  104. package/dist/components/ContactList/ContactListItem/GroupApplicationItem/index.js +4 -0
  105. package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.js +52 -0
  106. package/dist/components/ContactList/ContactListItem/GroupItem/GroupItem.vue.d.ts +25 -0
  107. package/dist/components/ContactList/ContactListItem/GroupItem/index.d.ts +1 -0
  108. package/dist/components/ContactList/ContactListItem/GroupItem/index.js +4 -0
  109. package/dist/components/ContactList/ContactListItem/index.d.ts +6 -0
  110. package/dist/components/ContactList/ContactListItem/index.js +95 -0
  111. package/dist/components/ContactList/ContactSearch/ContactSearch.js +85 -0
  112. package/dist/components/ContactList/ContactSearch/ContactSearch.vue.d.ts +8 -0
  113. package/dist/components/ContactList/ContactSearch/index.d.ts +1 -0
  114. package/dist/components/ContactList/ContactSearch/index.js +4 -0
  115. package/dist/components/ContactList/constants/const.d.ts +3 -0
  116. package/dist/components/ContactList/constants/const.js +6 -0
  117. package/dist/components/ContactList/hooks/index.d.ts +1 -0
  118. package/dist/components/ContactList/hooks/index.js +4 -0
  119. package/dist/components/ContactList/hooks/useContactList.d.ts +9 -0
  120. package/dist/components/ContactList/hooks/useContactList.js +18 -0
  121. package/dist/components/ContactList/i18n/en-US.d.ts +77 -0
  122. package/dist/components/ContactList/i18n/en-US.js +80 -0
  123. package/dist/components/ContactList/i18n/index.d.ts +4 -0
  124. package/dist/components/ContactList/i18n/index.js +6 -0
  125. package/dist/components/ContactList/i18n/zh-CN.d.ts +77 -0
  126. package/dist/components/ContactList/i18n/zh-CN.js +80 -0
  127. package/dist/components/ContactList/index.d.ts +442 -0
  128. package/dist/components/ContactList/index.js +16 -0
  129. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +30 -46
  130. package/dist/components/ConversationList/ConversationActions/ConversationActions.vue.d.ts +1 -10
  131. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +161 -100
  132. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.vue.d.ts +0 -3
  133. package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.js +79 -17
  134. package/dist/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue.d.ts +6 -12
  135. package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.js +78 -158
  136. package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue.d.ts +5 -4
  137. package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.js +37 -207
  138. package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue.d.ts +3 -9
  139. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.js +35 -23
  140. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue.d.ts +2 -11
  141. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/index.js +1 -2
  142. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.d.ts +2 -7
  143. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.js +6 -14
  144. package/dist/components/ConversationList/ConversationCreate/index.d.ts +0 -2
  145. package/dist/components/ConversationList/ConversationCreate/index.js +5 -9
  146. package/dist/components/ConversationList/ConversationList.js +61 -75
  147. package/dist/components/ConversationList/ConversationList.vue.d.ts +844 -3038
  148. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +12 -15
  149. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +22 -340
  150. package/dist/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.js +2 -2
  151. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +654 -1516
  152. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +15 -15
  153. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +14 -14
  154. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.js +19 -30
  155. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue.d.ts +0 -2
  156. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +27 -44
  157. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +154 -368
  158. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUnread.js +14 -14
  159. package/dist/components/ConversationList/ConversationPreview/index.d.ts +1 -1
  160. package/dist/components/ConversationList/ConversationPreview/index.js +20 -24
  161. package/dist/components/ConversationList/ConversationPreview/utils.js +8 -8
  162. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +6 -5
  163. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.vue.d.ts +8 -8
  164. package/dist/components/ConversationList/hooks/useConversation.d.ts +6 -0
  165. package/dist/components/ConversationList/hooks/useConversation.js +20 -0
  166. package/dist/components/ConversationList/hooks/useConversationCreate.d.ts +5 -0
  167. package/dist/components/ConversationList/hooks/useConversationCreate.js +24 -0
  168. package/dist/components/ConversationList/i18n/en-US.d.ts +16 -0
  169. package/dist/components/ConversationList/i18n/en-US.js +25 -7
  170. package/dist/components/ConversationList/i18n/zh-CN.d.ts +16 -0
  171. package/dist/components/ConversationList/i18n/zh-CN.js +24 -6
  172. package/dist/components/ConversationList/index.d.ts +2231 -6662
  173. package/dist/components/ConversationList/index.js +1 -1
  174. package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.js +1 -1
  175. package/dist/components/LiveCoreView/index.d.ts +4 -0
  176. package/dist/components/{LiveStreamView → LiveCoreView}/index.js +154 -105
  177. package/dist/components/{LiveStreamView → LiveCoreView}/index.vue.d.ts +9 -0
  178. package/dist/components/LiveList/LiveList.js +73 -45
  179. package/dist/components/LiveList/LiveListH5.js +80 -75
  180. package/dist/components/LiveList/i18n/en-US/index.d.ts +5 -0
  181. package/dist/components/LiveList/i18n/en-US/index.js +6 -1
  182. package/dist/components/LiveList/i18n/zh-CN/index.d.ts +5 -0
  183. package/dist/components/LiveList/i18n/zh-CN/index.js +6 -1
  184. package/dist/components/LiveList/pullToRefresh.js +204 -0
  185. package/dist/components/LiveList/pullToRefresh.vue.d.ts +86 -0
  186. package/dist/components/LiveScenePanel/CameraSettingDialog.js +7 -7
  187. package/dist/components/LiveScenePanel/icons/AddIcon.js +2 -2
  188. package/dist/components/LiveScenePanel/icons/CameraIcon.js +2 -2
  189. package/dist/components/LiveScenePanel/icons/CameraMirror.js +2 -2
  190. package/dist/components/LiveScenePanel/icons/CameraUnmirror.js +2 -2
  191. package/dist/components/LiveScenePanel/icons/ImageIcon.js +2 -2
  192. package/dist/components/LiveScenePanel/icons/MoreIcon.js +2 -2
  193. package/dist/components/LiveScenePanel/icons/ScreenIcon.js +2 -2
  194. package/dist/components/LiveScenePanel/index.js +3 -3
  195. package/dist/components/MessageInput/AttachmentPicker/AttachmentPicker.vue.d.ts +0 -4
  196. package/dist/components/MessageInput/AttachmentPicker/FilePicker.js +1 -1
  197. package/dist/components/MessageInput/AttachmentPicker/ImagePicker.js +1 -1
  198. package/dist/components/MessageInput/AttachmentPicker/VideoPicker.js +1 -1
  199. package/dist/components/MessageInput/AttachmentPicker/index.js +15 -20
  200. package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +4 -4
  201. package/dist/components/MessageInput/MessageInput.js +1 -1
  202. package/dist/components/MessageInput/MessageInput.vue.d.ts +6 -9
  203. package/dist/components/MessageInput/QuotedMessagePreview/index.js +2 -2
  204. package/dist/components/MessageInput/SendButton/index.js +1 -1
  205. package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +2 -2
  206. package/dist/components/MessageInput/TextEditor/index.js +24 -14
  207. package/dist/components/MessageInput/i18n/index.d.ts +24 -1
  208. package/dist/components/MessageInput/i18n/index.js +7 -8
  209. package/dist/components/MessageInput/index.d.ts +373 -6
  210. package/dist/components/MessageInput/index.js +23 -125
  211. package/dist/components/MessageList/Message/AudioMessage/PlayButton.js +3 -3
  212. package/dist/components/MessageList/Message/CustomMessage/index.js +2 -2
  213. package/dist/components/MessageList/Message/FaceMessage/FaceMessage.js +7 -5
  214. package/dist/components/MessageList/Message/FaceMessage/FaceMessage.vue.d.ts +8 -8
  215. package/dist/components/MessageList/Message/ImageMessage/ImageMessage.js +2 -2
  216. package/dist/components/MessageList/Message/LocationMessage/LocationMessage.js +2 -1
  217. package/dist/components/MessageList/Message/MergerMessage/MergerMessage.js +2 -1
  218. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +14 -6
  219. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +8 -8
  220. package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +1 -1
  221. package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.js +34 -30
  222. package/dist/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -10
  223. package/dist/components/MessageList/MessageForward/MessageForward.js +4 -5
  224. package/dist/components/MessageList/MessageList.js +76 -63
  225. package/dist/components/MessageList/MessageList.vue.d.ts +4 -4
  226. package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.js +5 -5
  227. package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue.d.ts +10 -10
  228. package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.js +32 -0
  229. package/dist/components/MessageList/ScrollToBottom/ScrollToBottom.vue.d.ts +6 -0
  230. package/dist/components/MessageList/ScrollToBottom/index.d.ts +3 -0
  231. package/dist/components/MessageList/ScrollToBottom/index.js +4 -0
  232. package/dist/components/MessageList/i18n/en-US.d.ts +5 -0
  233. package/dist/components/MessageList/i18n/en-US.js +6 -1
  234. package/dist/components/MessageList/i18n/index.d.ts +85 -1
  235. package/dist/components/MessageList/i18n/index.js +7 -8
  236. package/dist/components/MessageList/i18n/zh-CN.d.ts +5 -0
  237. package/dist/components/MessageList/i18n/zh-CN.js +6 -1
  238. package/dist/components/MessageList/index.d.ts +143 -5
  239. package/dist/components/MessageList/index.js +9 -5
  240. package/dist/components/Search/Search.js +5 -7
  241. package/dist/components/Search/Search.vue.d.ts +4 -4
  242. package/dist/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.js +15 -9
  243. package/dist/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.js +12 -7
  244. package/dist/components/Search/SearchAdvanced/SearchAdvanced.js +2 -2
  245. package/dist/components/Search/SearchAdvanced/SearchTab/SearchTab.js +10 -5
  246. package/dist/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.js +10 -10
  247. package/dist/components/Search/SearchBar/SearchBar.js +3 -2
  248. package/dist/components/Search/SearchResults/EmptyResult/EmptyResult.js +5 -7
  249. package/dist/components/Search/SearchResults/Loading/Loading.js +2 -4
  250. package/dist/components/Search/SearchResults/SearchResults.js +80 -69
  251. package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +6 -8
  252. package/dist/components/Search/SearchResults/SearchResultsItem/Group/Group.js +5 -7
  253. package/dist/components/Search/SearchResults/SearchResultsItem/Message/Message.js +19 -21
  254. package/dist/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.js +1 -3
  255. package/dist/components/Search/SearchResults/SearchResultsItem/User/User.js +5 -7
  256. package/dist/components/Search/SearchResults/SearchResultsItem/utils/highlightText.d.ts +5 -6
  257. package/dist/components/Search/i18n/en-US/Search.js +9 -9
  258. package/dist/components/Search/i18n/zh-CN/Search.js +13 -13
  259. package/dist/components/Search/index.d.ts +6 -6
  260. package/dist/components/StreamMixer/LocalMixer/MixerControl.js +14 -10
  261. package/dist/components/StreamMixer/LocalMixer/index.js +90 -59
  262. package/dist/components/StreamMixer/icons/CameraMirror.js +2 -2
  263. package/dist/components/StreamMixer/icons/Delete.js +2 -2
  264. package/dist/components/StreamMixer/icons/Down.js +2 -2
  265. package/dist/components/StreamMixer/icons/Rotation.js +2 -2
  266. package/dist/components/StreamMixer/icons/Up.js +2 -2
  267. package/dist/components/StreamMixer/index.js +2 -2
  268. package/dist/components/StreamView/common/StreamCover/index.js +2 -2
  269. package/dist/components/StreamView/manager/mediaManager.js +1 -1
  270. package/dist/components/UserPicker/UserPicker.js +2 -2
  271. package/dist/components/UserPicker/UserPicker.vue.d.ts +7 -8
  272. package/dist/components/UserPicker/components/ListMode/ListMode.js +14 -17
  273. package/dist/components/UserPicker/components/ListMode/ListMode.vue.d.ts +2 -2
  274. package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.vue.d.ts +2 -2
  275. package/dist/components/UserPicker/components/TreeMode/TreeMode.vue.d.ts +3 -3
  276. package/dist/components/UserPicker/components/TreeMode/TreeNode.js +2 -2
  277. package/dist/components/UserPicker/components/TreeMode/TreeNode.vue.d.ts +4 -4
  278. package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +3 -3
  279. package/dist/components/UserPicker/hooks/useSelection.d.ts +8 -8
  280. package/dist/components/UserPicker/hooks/useTreeState.d.ts +3 -3
  281. package/dist/components/UserPicker/i18n/index.d.ts +15 -1
  282. package/dist/components/UserPicker/i18n/index.js +3 -4
  283. package/dist/components/UserPicker/index.d.ts +134 -4
  284. package/dist/components/UserPicker/index.js +7 -3
  285. package/dist/components/UserPicker/type.d.ts +18 -18
  286. package/dist/components/VideoSettingPanel/VideoPreview.js +3 -4
  287. package/dist/components/VideoSettingPanel/VideoProfile.js +3 -4
  288. package/dist/components/VideoSettingPanel/i18n/en-US/index.d.ts +5 -0
  289. package/dist/components/VideoSettingPanel/i18n/en-US/index.js +8 -3
  290. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.d.ts +5 -0
  291. package/dist/components/VideoSettingPanel/i18n/zh-CN/index.js +8 -3
  292. package/dist/components/VideoSettingPanel/index.js +3 -3
  293. package/dist/hooks/useLongPress.d.ts +4 -4
  294. package/dist/hooks/useMessageActions.js +5 -5
  295. package/dist/hooks/useMouseHover.d.ts +7 -5
  296. package/dist/hooks/useMouseHover.js +3 -1
  297. package/dist/index.js +17 -8
  298. package/dist/rtc/index.d.ts +31 -20
  299. package/dist/rtc/index.js +6 -3
  300. package/dist/states/BarrageListState/BarrageListState.js +3 -2
  301. package/dist/states/CoHostState.d.ts +1 -1
  302. package/dist/states/CoHostState.js +59 -62
  303. package/dist/states/ContactListState/ContactListState.d.ts +16 -16
  304. package/dist/states/ContactListState/ContactListState.js +20 -20
  305. package/dist/states/ConversationListState/ConversationListState.d.ts +13 -12
  306. package/dist/states/ConversationListState/ConversationListState.js +19 -19
  307. package/dist/states/GroupSettingState/GroupSettingState.js +3 -3
  308. package/dist/states/LiveSeatState/seatEventManager.js +3 -5
  309. package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +12 -0
  310. package/dist/states/LiveState/index.d.ts +4 -4
  311. package/dist/states/LiveState/index.js +4 -2
  312. package/dist/states/LoginState.js +2 -3
  313. package/dist/states/MessageInputState/MessageInputState.js +39 -19
  314. package/dist/states/SearchState.d.ts +2 -2
  315. package/dist/states/SearchState.js +124 -127
  316. package/dist/styles/index.css +2814 -4214
  317. package/dist/types/contact.d.ts +146 -9
  318. package/dist/types/conversation.d.ts +48 -42
  319. package/dist/types/conversation.js +22 -0
  320. package/dist/types/engine.d.ts +12 -0
  321. package/dist/types/engine.js +15 -0
  322. package/dist/types/index.js +7 -4
  323. package/dist/types/live.d.ts +2 -3
  324. package/dist/types/types.d.ts +0 -8
  325. package/dist/types/types.js +0 -10
  326. package/dist/utils/json.js +0 -1
  327. package/dist/utils/time.d.ts +2 -2
  328. package/dist/utils/time.js +253 -1471
  329. package/package.json +27 -5
  330. package/src/baseComp/View/View.vue +1 -2
  331. package/src/baseComp/index.ts +1 -2
  332. package/src/chat/index.ts +23 -4
  333. package/src/components/Avatar/Avatar.vue +12 -11
  334. package/src/components/BarrageInput/BarrageInputH5.vue +85 -12
  335. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
  336. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  337. package/src/components/BarrageInput/TextEditor/Editor.scss +1 -1
  338. package/src/components/BarrageInput/TextEditor/TextEditor.module.scss +2 -0
  339. package/src/components/BarrageInput/TextEditor/TextEditor.vue +19 -5
  340. package/src/components/BarrageInput/constants.ts +3 -0
  341. package/src/components/BarrageInput/i18n/en-US/index.ts +2 -0
  342. package/src/components/BarrageInput/i18n/zh-CN/index.ts +2 -0
  343. package/src/components/BarrageList/BarrageList.vue +2 -2
  344. package/src/components/BarrageList/BarrageListH5.vue +2 -2
  345. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +8 -8
  346. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +0 -1
  347. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +5 -2
  348. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +7 -3
  349. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +13 -3
  350. package/src/components/BarrageList/i18n/en-US/index.ts +1 -0
  351. package/src/components/BarrageList/i18n/zh-CN/index.ts +1 -0
  352. package/src/components/ChatSetting/ChatSetting.vue +6 -10
  353. package/src/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.vue +5 -2
  354. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -4
  355. package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +3 -3
  356. package/src/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.vue +3 -2
  357. package/src/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.vue +3 -3
  358. package/src/components/ChatSetting/SettingItem/SettingItem.vue +48 -41
  359. package/src/components/ChatSetting/i18n/en-US.ts +3 -3
  360. package/src/components/ChatSetting/i18n/index.ts +3 -5
  361. package/src/components/ChatSetting/i18n/zh-CN.ts +3 -3
  362. package/src/components/ChatSetting/index.ts +8 -4
  363. package/src/components/CoGuestPanel/CoGuestPanel.vue +9 -0
  364. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +52 -0
  365. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.vue +71 -0
  366. package/src/components/ContactList/ContactInfo/BlacklistInfo/index.ts +1 -0
  367. package/src/components/ContactList/ContactInfo/ContactInfo.scss +33 -0
  368. package/src/components/ContactList/ContactInfo/ContactInfo.vue +264 -0
  369. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +84 -0
  370. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.vue +88 -0
  371. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/index.ts +1 -0
  372. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.scss +93 -0
  373. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.vue +219 -0
  374. package/src/components/ContactList/ContactInfo/FriendInfo/index.ts +1 -0
  375. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.scss +84 -0
  376. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.vue +99 -0
  377. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/index.ts +1 -0
  378. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.scss +54 -0
  379. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +147 -0
  380. package/src/components/ContactList/ContactInfo/GroupInfo/index.ts +1 -0
  381. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.scss +111 -0
  382. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.vue +147 -0
  383. package/src/components/ContactList/ContactInfo/SearchGroupInfo/index.ts +1 -0
  384. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.scss +112 -0
  385. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.vue +128 -0
  386. package/src/components/ContactList/ContactInfo/SearchUserInfo/index.ts +1 -0
  387. package/src/components/ContactList/ContactInfo/index.ts +8 -0
  388. package/src/components/ContactList/ContactList.scss +125 -0
  389. package/src/components/ContactList/ContactList.vue +314 -0
  390. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.scss +39 -0
  391. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.vue +47 -0
  392. package/src/components/ContactList/ContactListItem/BlacklistItem/index.ts +1 -0
  393. package/src/components/ContactList/ContactListItem/ContactListItem.vue +98 -0
  394. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.scss +57 -0
  395. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.vue +70 -0
  396. package/src/components/ContactList/ContactListItem/FriendApplicationItem/index.ts +1 -0
  397. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.scss +39 -0
  398. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.vue +47 -0
  399. package/src/components/ContactList/ContactListItem/FriendItem/index.ts +1 -0
  400. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.scss +56 -0
  401. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.vue +78 -0
  402. package/src/components/ContactList/ContactListItem/GroupApplicationItem/index.ts +1 -0
  403. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.scss +39 -0
  404. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.vue +47 -0
  405. package/src/components/ContactList/ContactListItem/GroupItem/index.ts +1 -0
  406. package/src/components/ContactList/ContactListItem/index.ts +6 -0
  407. package/src/components/ContactList/ContactSearch/ContactSearch.scss +58 -0
  408. package/src/components/ContactList/ContactSearch/ContactSearch.vue +98 -0
  409. package/src/components/ContactList/ContactSearch/index.ts +1 -0
  410. package/src/components/ContactList/constants/const.ts +7 -0
  411. package/src/components/ContactList/hooks/index.ts +1 -0
  412. package/src/components/ContactList/hooks/useContactList.ts +21 -0
  413. package/src/components/ContactList/i18n/en-US.ts +77 -0
  414. package/src/components/ContactList/i18n/index.ts +4 -0
  415. package/src/components/ContactList/i18n/zh-CN.ts +77 -0
  416. package/src/components/ContactList/index.ts +18 -0
  417. package/src/components/ConversationList/ConversationActions/ConversationActions.scss +36 -47
  418. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +15 -29
  419. package/src/components/ConversationList/ConversationCreate/ConversationCreate.scss +11 -37
  420. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +155 -69
  421. package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.scss +37 -1
  422. package/src/components/ConversationList/ConversationCreate/ConversationCreateButton/ConversationCreateButton.vue +70 -15
  423. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.scss +20 -66
  424. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.vue +72 -139
  425. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.scss +5 -129
  426. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +42 -183
  427. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.scss +15 -11
  428. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.vue +23 -18
  429. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/type.ts +2 -8
  430. package/src/components/ConversationList/ConversationCreate/index.ts +0 -2
  431. package/src/components/ConversationList/ConversationList.scss +1 -5
  432. package/src/components/ConversationList/ConversationList.vue +53 -60
  433. package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +3 -5
  434. package/src/components/ConversationList/ConversationListContent/ConversationListContent.vue +13 -18
  435. package/src/components/ConversationList/ConversationPlaceHolder/ConversationPlaceHolder.vue +2 -2
  436. package/src/components/ConversationList/ConversationPreview/ConversationPreview.scss +11 -9
  437. package/src/components/ConversationList/ConversationPreview/ConversationPreview.vue +14 -16
  438. package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +1 -1
  439. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +2 -14
  440. package/src/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue +6 -19
  441. package/src/components/ConversationList/ConversationPreview/index.ts +1 -1
  442. package/src/components/ConversationList/ConversationPreview/utils.ts +11 -11
  443. package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +1 -0
  444. package/src/components/ConversationList/hooks/useConversation.ts +21 -0
  445. package/src/components/ConversationList/hooks/useConversationCreate.ts +29 -0
  446. package/src/components/ConversationList/i18n/en-US.ts +26 -6
  447. package/src/components/ConversationList/i18n/zh-CN.ts +25 -5
  448. package/src/components/{LiveStreamView → LiveCoreView}/index.ts +4 -3
  449. package/src/components/LiveCoreView/index.vue +420 -0
  450. package/src/components/LiveList/LiveList.vue +97 -38
  451. package/src/components/LiveList/LiveListH5.vue +65 -66
  452. package/src/components/LiveList/i18n/en-US/index.ts +5 -0
  453. package/src/components/LiveList/i18n/zh-CN/index.ts +5 -0
  454. package/src/components/LiveList/pullToRefresh.vue +364 -0
  455. package/src/components/LiveScenePanel/CameraSettingDialog.vue +6 -5
  456. package/src/components/LiveScenePanel/index.vue +2 -2
  457. package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.module.scss +4 -0
  458. package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.vue +12 -17
  459. package/src/components/MessageInput/AttachmentPicker/FilePicker.vue +3 -2
  460. package/src/components/MessageInput/AttachmentPicker/ImagePicker.vue +3 -2
  461. package/src/components/MessageInput/AttachmentPicker/VideoPicker.vue +3 -2
  462. package/src/components/MessageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
  463. package/src/components/MessageInput/MessageInput.module.scss +1 -1
  464. package/src/components/MessageInput/MessageInput.vue +21 -15
  465. package/src/components/MessageInput/QuotedMessagePreview/QuotedMessagePreview.vue +2 -2
  466. package/src/components/MessageInput/SendButton/SendButton.vue +1 -1
  467. package/src/components/MessageInput/TextEditor/Editor.scss +4 -2
  468. package/src/components/MessageInput/TextEditor/TextEditor.module.scss +1 -0
  469. package/src/components/MessageInput/TextEditor/TextEditor.vue +18 -6
  470. package/src/components/MessageInput/i18n/index.ts +1 -7
  471. package/src/components/MessageInput/index.ts +25 -8
  472. package/src/components/MessageInput/types.d.ts +3 -4
  473. package/src/components/MessageList/Message/CustomMessage/CustomMessage.vue +1 -1
  474. package/src/components/MessageList/Message/FaceMessage/FaceMessage.vue +10 -7
  475. package/src/components/MessageList/Message/LocationMessage/LocationMessage.vue +3 -1
  476. package/src/components/MessageList/Message/MergerMessage/MergerMessage.vue +1 -1
  477. package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +6 -6
  478. package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +0 -1
  479. package/src/components/MessageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +16 -17
  480. package/src/components/MessageList/MessageForward/MessageForward.vue +5 -5
  481. package/src/components/MessageList/MessageList.vue +37 -9
  482. package/src/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue +9 -9
  483. package/src/components/MessageList/ScrollToBottom/ScrollToBottom.vue +50 -0
  484. package/src/components/MessageList/ScrollToBottom/index.ts +5 -0
  485. package/src/components/MessageList/i18n/en-US.ts +5 -0
  486. package/src/components/MessageList/i18n/index.ts +1 -5
  487. package/src/components/MessageList/i18n/zh-CN.ts +5 -0
  488. package/src/components/MessageList/index.ts +9 -5
  489. package/src/components/Search/Search.scss +0 -3
  490. package/src/components/Search/Search.vue +0 -4
  491. package/src/components/Search/SearchAdvanced/DateRangePicker/DateRangePicker.vue +125 -38
  492. package/src/components/Search/SearchAdvanced/MessageAdvanced/MessageAdvanced.vue +24 -16
  493. package/src/components/Search/SearchAdvanced/SearchAdvanced.vue +9 -7
  494. package/src/components/Search/SearchAdvanced/SearchTab/SearchTab.vue +4 -3
  495. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.scss +0 -1
  496. package/src/components/Search/SearchAdvanced/UserAdvanced/UserAdvanced.vue +57 -23
  497. package/src/components/Search/SearchBar/SearchBar.scss +0 -2
  498. package/src/components/Search/SearchBar/SearchBar.vue +7 -5
  499. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.scss +0 -3
  500. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.vue +4 -2
  501. package/src/components/Search/SearchResults/Loading/Loading.scss +0 -3
  502. package/src/components/Search/SearchResults/SearchResults.scss +12 -27
  503. package/src/components/Search/SearchResults/SearchResults.vue +25 -29
  504. package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +5 -19
  505. package/src/components/Search/SearchResults/SearchResultsItem/Group/Group.scss +5 -11
  506. package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.scss +5 -11
  507. package/src/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.scss +0 -3
  508. package/src/components/Search/SearchResults/SearchResultsItem/User/User.scss +5 -6
  509. package/src/components/Search/SearchResults/SearchResultsItem/utils/highlightText.ts +15 -16
  510. package/src/components/Search/i18n/en-US/Search.ts +9 -9
  511. package/src/components/Search/i18n/zh-CN/Search.ts +13 -13
  512. package/src/components/StreamMixer/LocalMixer/MixerControl.vue +20 -15
  513. package/src/components/StreamMixer/LocalMixer/index.vue +138 -60
  514. package/src/components/StreamMixer/index.vue +3 -3
  515. package/src/components/StreamView/manager/mediaManager.ts +1 -1
  516. package/src/components/UserPicker/UserPicker.vue +6 -9
  517. package/src/components/UserPicker/components/ListMode/ListMode.vue +3 -7
  518. package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +2 -2
  519. package/src/components/UserPicker/components/TreeMode/TreeMode.vue +3 -3
  520. package/src/components/UserPicker/components/TreeMode/TreeNode.vue +3 -3
  521. package/src/components/UserPicker/hooks/useSearchFilter.ts +15 -14
  522. package/src/components/UserPicker/hooks/useSelection.ts +32 -32
  523. package/src/components/UserPicker/hooks/useTreeState.ts +4 -4
  524. package/src/components/UserPicker/i18n/index.ts +1 -5
  525. package/src/components/UserPicker/index.ts +20 -17
  526. package/src/components/UserPicker/type.ts +18 -18
  527. package/src/components/VideoSettingPanel/VideoPreview.vue +13 -8
  528. package/src/components/VideoSettingPanel/VideoProfile.vue +5 -5
  529. package/src/components/VideoSettingPanel/i18n/en-US/index.ts +8 -3
  530. package/src/components/VideoSettingPanel/i18n/zh-CN/index.ts +8 -3
  531. package/src/components/VideoSettingPanel/index.vue +15 -9
  532. package/src/hooks/useLongPress.ts +7 -18
  533. package/src/hooks/useMessageActions.ts +5 -5
  534. package/src/hooks/useMouseHover.ts +9 -7
  535. package/src/rtc/index.ts +6 -3
  536. package/src/types/contact.ts +176 -12
  537. package/src/types/conversation.ts +54 -46
  538. package/src/types/engine.ts +15 -0
  539. package/src/types/live.ts +3 -5
  540. package/src/types/types.ts +0 -28
  541. package/src/utils/json.ts +0 -4
  542. package/src/utils/time.ts +8 -10
  543. package/dist/AttachmentPicker.module-0_DWsAtr.js +0 -11
  544. package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CaSj3Gh_.js +0 -72
  545. package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CrzGMmrh.js +0 -72
  546. package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-DTv6TJKr.js +0 -72
  547. package/dist/baseComp/Popup/Popup.js +0 -132
  548. package/dist/baseComp/Popup/Popup.vue.d.ts +0 -54
  549. package/dist/baseComp/Popup/index.d.ts +0 -2
  550. package/dist/baseComp/Popup/index.js +0 -4
  551. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.js +0 -65
  552. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue.d.ts +0 -17
  553. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.d.ts +0 -1
  554. package/dist/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.js +0 -4
  555. package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.d.ts +0 -9
  556. package/dist/components/ConversationList/ConversationCreate/hooks/useConversationCreate.js +0 -96
  557. package/dist/components/ConversationList/ConversationCreate/static/word.d.ts +0 -6
  558. package/dist/components/ConversationList/ConversationCreate/static/word.js +0 -4
  559. package/dist/components/LiveStreamView/index.d.ts +0 -4
  560. package/dist/states/UIOpenControlState/UIOpenControlState.d.ts +0 -15
  561. package/dist/states/UIOpenControlState/UIOpenControlState.js +0 -28
  562. package/dist/states/UIOpenControlState/index.d.ts +0 -1
  563. package/dist/states/UIOpenControlState/index.js +0 -4
  564. package/src/baseComp/Popup/Popup.vue +0 -156
  565. package/src/baseComp/Popup/index.ts +0 -2
  566. package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.scss +0 -36
  567. package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/ConversationCreateSelectView.vue +0 -44
  568. package/src/components/ConversationList/ConversationCreate/ConversationCreateSelectView/index.ts +0 -1
  569. package/src/components/ConversationList/ConversationCreate/hooks/useConversationCreate.ts +0 -132
  570. package/src/components/ConversationList/ConversationCreate/static/word.ts +0 -300
  571. package/src/components/LiveStreamView/index.vue +0 -333
  572. /package/dist/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue.d.ts +0 -0
  573. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.d.ts +0 -0
  574. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.js +0 -0
  575. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.d.ts +0 -0
  576. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/index.js +0 -0
  577. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.d.ts +0 -0
  578. /package/dist/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.js +0 -0
  579. /package/src/components/{LiveStreamView → LiveCoreView}/DefaultStreamViewUI.vue +0 -0
  580. /package/src/components/{LiveStreamView → LiveCoreView}/i18n/en-US/index.ts +0 -0
  581. /package/src/components/{LiveStreamView → LiveCoreView}/i18n/index.ts +0 -0
  582. /package/src/components/{LiveStreamView → LiveCoreView}/i18n/zh-CN/index.ts +0 -0
@@ -0,0 +1,420 @@
1
+ <template>
2
+ <div
3
+ ref="liveCoreViewContainerRef"
4
+ class="live-core-view-container"
5
+ :class="{ 'align-center': isAlignCenter }"
6
+ >
7
+ <div
8
+ v-if="!$slots.localVideo && !isPlayedVideo"
9
+ class="live-core-placeholder"
10
+ >
11
+ <span class="placeholder-text">{{ t('No video') }}</span>
12
+ </div>
13
+ <div
14
+ class="live-core-view"
15
+ :style="streamViewStyle"
16
+ >
17
+ <div
18
+ id="atomicx-live-stream-content"
19
+ class="stream-content"
20
+ />
21
+ <div
22
+ v-if="needPlayStreamViewInfo.length > 0"
23
+ class="live-core-ui"
24
+ >
25
+ <div
26
+ v-for="(item, index) in needPlayStreamViewInfo"
27
+ :key="`seat-${index}`"
28
+ :style="item.region"
29
+ >
30
+ <slot
31
+ name="streamViewUI"
32
+ v-bind="{ userInfo: item.userInfo }"
33
+ />
34
+ <DefaultStreamViewUI
35
+ v-if="!$slots.streamViewUI"
36
+ :streamViewInfoList="needPlayStreamViewInfo"
37
+ :userInfo="item.userInfo"
38
+ />
39
+ </div>
40
+ </div>
41
+ <slot
42
+ v-if="$slots.localVideo && isMounted"
43
+ name="localVideo"
44
+ v-bind="{ style: localStreamViewInfo?.region }"
45
+ />
46
+ </div>
47
+ </div>
48
+ </template>
49
+
50
+ <script setup lang="ts">
51
+ import { ref, computed, watch, onMounted, onBeforeUnmount, useSlots } from 'vue';
52
+ import type { ComputedRef } from 'vue';
53
+ import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
54
+ import { useLiveSeatState } from '../../states/LiveSeatState';
55
+ import { useLiveState } from '../../states/LiveState';
56
+ import { useLoginState } from '../../states/LoginState';
57
+ import { getContentSize } from '../../utils/domOperation';
58
+ import DefaultStreamViewUI from './DefaultStreamViewUI.vue';
59
+ import type { SeatInfo, SeatUserInfo } from '../../types';
60
+
61
+ const { t } = useUIKit();
62
+ const { seatList, canvas, startPlayStream, stopPlayStream } = useLiveSeatState();
63
+ const { currentLive } = useLiveState();
64
+
65
+ const slots = useSlots();
66
+
67
+ const isInStreamMixerComp = computed(() => slots.localVideo);
68
+
69
+ const { loginUserInfo } = useLoginState();
70
+ const isPlayedVideo = ref(false);
71
+ const isMounted = ref(false);
72
+ const isAlignCenter = computed(() => {
73
+ if (!isInStreamMixerComp.value && isPortraitContainer.value && widthRatio.value < heightRatio.value) {
74
+ return false;
75
+ }
76
+ return true;
77
+ });
78
+
79
+ onMounted(async () => {
80
+ isMounted.value = true;
81
+ await startPlayStream({ view: 'atomicx-live-stream-content' });
82
+ isPlayedVideo.value = true;
83
+ });
84
+
85
+ onBeforeUnmount(async () => {
86
+ isMounted.value = false;
87
+ await stopPlayStream();
88
+ isPlayedVideo.value = false;
89
+ });
90
+
91
+ const isPortraitContainer = ref(true);
92
+ const liveCoreViewContainerRef = ref<HTMLDivElement>();
93
+
94
+ const liveCoreViewContainerSize = ref<{ width: number; height: number }>({
95
+ width: 0,
96
+ height: 0,
97
+ });
98
+ const originStreamViewStyle = ref({
99
+ width: 0,
100
+ height: 0,
101
+ transformX: 0,
102
+ transformY: 0,
103
+ scale: 1,
104
+ });
105
+
106
+ const ratioLayoutList = computed(() => {
107
+ const layoutCanvas = canvas.value;
108
+ const layoutList = seatList.value?.map(seat => ({ userId: seat.userInfo?.userId, ...seat.region }));
109
+ if (!layoutList) {
110
+ return [];
111
+ }
112
+ return layoutList.map((item: any) => ({
113
+ userId: item.userId,
114
+ x: item.x / layoutCanvas.width,
115
+ y: item.y / layoutCanvas.width,
116
+ width: item.w / layoutCanvas.width,
117
+ height: item.h === layoutCanvas.height ? -1 : item.h / layoutCanvas.width,
118
+ zOrder: item.zOrder,
119
+ }));
120
+ });
121
+
122
+ const streamViewSize = computed(() => {
123
+ return {
124
+ width: originStreamViewStyle.value.width * originStreamViewStyle.value.scale,
125
+ height: originStreamViewStyle.value.height * originStreamViewStyle.value.scale,
126
+ };
127
+ });
128
+
129
+ const seatListWithRealSize = computed(() => seatList.value.map((item: SeatInfo, index: number) => {
130
+ const ratioLayout = ratioLayoutList.value[index];
131
+ const isPortraitAndFill = isPortraitContainer.value && fillMode.value === StreamFillMode.Fill;
132
+ const isSampleWithCanvas = seatList.value.length === 1 || (item.region?.w === canvas.value.width && item.region?.h === canvas.value.height);
133
+ if (!isInStreamMixerComp.value && isPortraitAndFill && isSampleWithCanvas) {
134
+ return {
135
+ userInfo: item.userInfo as SeatUserInfo,
136
+ region: {
137
+ position: 'absolute' as const,
138
+ left: '50%',
139
+ top: '50%',
140
+ width: `${liveCoreViewContainerSize.value.width}px`,
141
+ height: `${liveCoreViewContainerSize.value.height}px`,
142
+ transform: `translate(-50%, -50%)`,
143
+ zIndex: Number(ratioLayout.zOrder) || 0,
144
+ },
145
+ }
146
+ }
147
+ return {
148
+ userInfo: item.userInfo as SeatUserInfo,
149
+ region: {
150
+ position: 'absolute' as const,
151
+ left: `${streamViewSize.value.width * ratioLayout.x}px`,
152
+ top: `${streamViewSize.value.width * ratioLayout.y}px`,
153
+ width: `${streamViewSize.value.width * ratioLayout.width}px`,
154
+ height:
155
+ ratioLayout.height === -1
156
+ ? `${streamViewSize.value.height}px`
157
+ : `${streamViewSize.value.width * ratioLayout.height}px`,
158
+ zIndex: Number(ratioLayout.zOrder) || 0,
159
+ },
160
+ };
161
+ }));
162
+
163
+ const localStreamViewInfo = computed(() => seatListWithRealSize.value.find(item => item?.userInfo?.userId === loginUserInfo.value?.userId));
164
+
165
+ const needPlayStreamViewInfo = computed(() => {
166
+ if (isInStreamMixerComp.value) {
167
+ return seatListWithRealSize.value.filter(item => item.userInfo?.userId !== loginUserInfo.value?.userId);
168
+ }
169
+ return seatListWithRealSize.value;
170
+ });
171
+
172
+ // ----- Layout Processing -----
173
+ // Get a stream layout container B based on the size of streamView's parent element A, container B conforms to aspectRatio proportion
174
+ // Based on the passed props.config.layoutList, using stream layout container B as canvas size, calculate the size of all visible areas C and the center coordinates of visible area C
175
+ // Based on the size ratio of visible area C and A, calculate container B's scale. Based on the center coordinates of C and B, calculate container B's transformX and transformY (to ensure C's center point is at the center of streamView's parent element B)
176
+ // Based on container B's scale and transformX, transformY, calculate container B's actual width, height, transformX, transformY (scale is not used here to avoid affecting the size of text and img in child elements)
177
+ // Based on container B's actual size, calculate the actual position and size of each child element
178
+
179
+ const visualStreamSize = computed(() => {
180
+ if (!isPortraitContainer.value && widthRatio.value < heightRatio.value && ratioLayoutList.value.length > 0) {
181
+ const absoluteLayoutList = ratioLayoutList.value.map(item => ({
182
+ userId: item.userId,
183
+ left: originStreamViewStyle.value.width * item.x,
184
+ top: originStreamViewStyle.value.width * item.y,
185
+ width: originStreamViewStyle.value.width * item.width,
186
+ height: item.height === -1 ? originStreamViewStyle.value.height : originStreamViewStyle.value.width * item.height,
187
+ zIndex: item.zOrder,
188
+ }));
189
+ const minX = Math.min(...absoluteLayoutList.map(item => item.left));
190
+ const minY = Math.min(...absoluteLayoutList.map(item => item.top));
191
+ const maxX = Math.max(...absoluteLayoutList.map(item => item.left + item.width));
192
+ const maxY = Math.max(...absoluteLayoutList.map(item => item.top + item.height));
193
+ return {
194
+ width: maxX - minX,
195
+ height: maxY - minY,
196
+ centerX: (minX + maxX) / 2,
197
+ centerY: (minY + maxY) / 2,
198
+ };
199
+ }
200
+ return {
201
+ width: 0,
202
+ height: 0,
203
+ centerX: 0,
204
+ centerY: 0,
205
+ };
206
+ });
207
+
208
+ watch(visualStreamSize, () => {
209
+ handleStreamListTransform();
210
+ });
211
+
212
+ function handleStreamListTransform() {
213
+ if (!liveCoreViewContainerRef.value) {
214
+ return;
215
+ }
216
+
217
+ if (visualStreamSize.value.width && visualStreamSize.value.height) {
218
+ const containerRect = liveCoreViewContainerRef.value.getBoundingClientRect();
219
+ const containerWidth = Math.floor(containerRect.width);
220
+ const containerHeight = Math.floor(containerRect.height);
221
+
222
+ const scaleWidth = containerWidth / visualStreamSize.value.width;
223
+ const scaleHeight = containerHeight / visualStreamSize.value.height;
224
+ originStreamViewStyle.value.scale = Math.min(scaleWidth, scaleHeight);
225
+
226
+ originStreamViewStyle.value.transformX = originStreamViewStyle.value.width / 2 - visualStreamSize.value.centerX;
227
+ originStreamViewStyle.value.transformY = originStreamViewStyle.value.height / 2 - visualStreamSize.value.centerY;
228
+ } else {
229
+ handleStreamRegionSize();
230
+ originStreamViewStyle.value.scale = 1;
231
+ originStreamViewStyle.value.transformX = 0;
232
+ originStreamViewStyle.value.transformY = 0;
233
+ }
234
+ }
235
+
236
+ const streamViewStyle = computed(() => {
237
+ return {
238
+ width: `${Math.floor(originStreamViewStyle.value.width) * originStreamViewStyle.value.scale}px`,
239
+ height: `${Math.floor(originStreamViewStyle.value.height) * originStreamViewStyle.value.scale}px`,
240
+ transform: `translate(${originStreamViewStyle.value.transformX * originStreamViewStyle.value.scale}px, ${
241
+ originStreamViewStyle.value.transformY * originStreamViewStyle.value.scale
242
+ }px)`,
243
+ };
244
+ });
245
+
246
+ const aspectRatio = computed(() => {
247
+ if (canvas.value.width && canvas.value.height) {
248
+ return `${canvas.value.width}:${canvas.value.height}`;
249
+ }
250
+ if (currentLive.value && currentLive.value?.layoutTemplate >= 200 && currentLive.value?.layoutTemplate <= 599) {
251
+ return '16:9';
252
+ }
253
+ return '9:16';
254
+ });
255
+
256
+ const widthRatio: ComputedRef<number> = computed(() => {
257
+ if (!aspectRatio.value || aspectRatio.value.indexOf(':') < 0) {
258
+ return 0;
259
+ }
260
+ return Number(aspectRatio.value.split(':')[0]);
261
+ });
262
+ const heightRatio: ComputedRef<number> = computed(() => {
263
+ if (!aspectRatio.value || aspectRatio.value.indexOf(':') < 0) {
264
+ return 0;
265
+ }
266
+ return Number(aspectRatio.value.split(':')[1]);
267
+ });
268
+
269
+ /**
270
+ * fillMode rules:
271
+ * Rule 1: If there is only one user in seatList, fillMode is Fill
272
+ * Rule 2: If a user's region in seatList matches the canvas size, fillMode is Fill
273
+ * Rule 3: If in landscape mode, fillMode must be Fit
274
+ */
275
+ enum StreamFillMode {
276
+ Fit = 'fit',
277
+ Fill = 'fill',
278
+ }
279
+
280
+ const fillMode = ref<StreamFillMode>(StreamFillMode.Fit);
281
+
282
+ watch(() => [canvas.value, seatList.value], () => {
283
+ if (canvas.value.width > canvas.value.height) {
284
+ fillMode.value = StreamFillMode.Fit;
285
+ handleStreamRegionSize();
286
+ return;
287
+ }
288
+ const onlyOneSeat = seatList.value.length === 1;
289
+ const hasOneFullScreenUser = seatList.value.find((item: any) => item.region?.w === canvas.value.width && item.region?.h === canvas.value.height);
290
+ if (!isInStreamMixerComp.value && (onlyOneSeat || hasOneFullScreenUser)) {
291
+ fillMode.value = StreamFillMode.Fill;
292
+ } else {
293
+ fillMode.value = StreamFillMode.Fit;
294
+ }
295
+ handleStreamRegionSize();
296
+ });
297
+
298
+ function handleStreamRegionSize() {
299
+ if (!liveCoreViewContainerRef.value) {
300
+ return;
301
+ }
302
+ const containerWidth = getContentSize(liveCoreViewContainerRef.value).width;
303
+ const containerHeight = getContentSize(liveCoreViewContainerRef.value).height;
304
+ let width = containerWidth;
305
+ let height = containerHeight;
306
+ if (widthRatio.value && heightRatio.value) {
307
+ const scaleWidth = containerWidth / widthRatio.value;
308
+ const scaleHeight = containerHeight / heightRatio.value;
309
+
310
+ if (fillMode.value === StreamFillMode.Fit) {
311
+ if (scaleWidth > scaleHeight) {
312
+ width = (containerHeight / heightRatio.value) * widthRatio.value;
313
+ height = containerHeight;
314
+ }
315
+ if (scaleWidth <= scaleHeight) {
316
+ width = containerWidth;
317
+ height = (containerWidth / widthRatio.value) * heightRatio.value;
318
+ }
319
+ } else {
320
+ if (scaleWidth > scaleHeight) {
321
+ width = containerWidth;
322
+ height = (containerWidth / widthRatio.value) * heightRatio.value;
323
+ }
324
+ if (scaleWidth <= scaleHeight) {
325
+ width = (containerHeight / heightRatio.value) * widthRatio.value;
326
+ height = containerHeight;
327
+ }
328
+ }
329
+ }
330
+ originStreamViewStyle.value.width = width;
331
+ originStreamViewStyle.value.height = height;
332
+ }
333
+
334
+ watch(
335
+ () => aspectRatio.value,
336
+ () => {
337
+ handleStreamRegionSize();
338
+ },
339
+ );
340
+
341
+ const getContainerOrientation = () => {
342
+ if (!liveCoreViewContainerRef.value) {
343
+ return;
344
+ }
345
+ const containerRect = liveCoreViewContainerRef.value.getBoundingClientRect();
346
+ isPortraitContainer.value = containerRect.width < containerRect.height;
347
+ liveCoreViewContainerSize.value = {
348
+ width: containerRect.width,
349
+ height: containerRect.height,
350
+ };
351
+ };
352
+
353
+ const ro = new ResizeObserver(() => {
354
+ getContainerOrientation();
355
+ handleStreamRegionSize();
356
+ handleStreamListTransform();
357
+ });
358
+
359
+ onMounted(() => {
360
+ ro.observe(liveCoreViewContainerRef.value as Element);
361
+ getContainerOrientation();
362
+ });
363
+
364
+ onBeforeUnmount(() => {
365
+ ro.unobserve(liveCoreViewContainerRef.value as Element);
366
+ });
367
+ </script>
368
+
369
+ <style scoped lang="scss">
370
+ .live-core-view-container {
371
+ width: 100%;
372
+ height: 100%;
373
+ display: flex;
374
+ justify-content: center;
375
+ overflow: hidden;
376
+ &.align-center {
377
+ align-items: center;
378
+ }
379
+ .live-core-placeholder {
380
+ position: absolute;
381
+ top: 0;
382
+ left: 0;
383
+ width: 100%;
384
+ height: 100%;
385
+ display: flex;
386
+ align-items: center;
387
+ justify-content: center;
388
+ .placeholder-text {
389
+ color: var(--text-color-secondary, rgba(255, 255, 255, 0.55));
390
+ font-size: 14px;
391
+ font-style: normal;
392
+ font-weight: 400;
393
+ line-height: 22px;
394
+ }
395
+ }
396
+
397
+ .live-core-view {
398
+ width: 100%;
399
+ height: 100%;
400
+ position: absolute;
401
+
402
+ .stream-content {
403
+ width: 100%;
404
+ height: 100%;
405
+ position: absolute;
406
+ top: 0;
407
+ left: 0;
408
+ }
409
+
410
+ .live-core-ui {
411
+ width: 100%;
412
+ height: 100%;
413
+ position: absolute;
414
+ pointer-events: none;
415
+ top: 0;
416
+ left: 0;
417
+ }
418
+ }
419
+ }
420
+ </style>
@@ -1,8 +1,24 @@
1
1
  <template>
2
- <div class="live-list-panel" v-if="loginUserInfo">
3
- <div v-if="liveList.length > 0" class="live-list" @wheel="handleWheel" ref="scrollContainerRef">
4
- <div class="live-list-items">
5
- <div class="live-item" v-for="item in liveList" :key="item.liveId" @click="liveRoomClick(item)">
2
+ <div
3
+ v-if="loginUserInfo"
4
+ class="live-list-panel"
5
+ >
6
+ <div
7
+ v-if="liveList.length > 0"
8
+ ref="scrollContainerRef"
9
+ class="live-list"
10
+ @wheel="handleWheel"
11
+ >
12
+ <div
13
+ ref="liveListItemsRef"
14
+ class="live-list-items"
15
+ >
16
+ <div
17
+ v-for="item in liveList"
18
+ :key="item.liveId"
19
+ class="live-item"
20
+ @click="liveRoomClick(item)"
21
+ >
6
22
  <div class="live-room-cover">
7
23
  <div class="header">
8
24
  <div class="left">
@@ -14,26 +30,49 @@
14
30
  <span> {{ t('people have watched the live') }} </span>
15
31
  </div>
16
32
  </div>
17
- <img :src="item.coverUrl || DEFAULT_COVER" alt="" @error="handleCoverImageError" />
33
+ <img
34
+ :src="item.coverUrl || DEFAULT_COVER"
35
+ alt=""
36
+ @error="handleCoverImageError"
37
+ >
18
38
  </div>
19
39
  <span class="live-name">{{ item.liveName }} </span>
20
40
  <div class="owner-info">
21
- <Avatar :src="item.liveOwner.avatarUrl" :size="24" />
41
+ <Avatar
42
+ :src="item.liveOwner.avatarUrl"
43
+ :size="24"
44
+ :style="{ border: '1px solid var(--uikit-color-white-7)' }"
45
+ />
22
46
  <span class="owner-name">{{ item.liveOwner.userName || item.liveOwner.userId }} </span>
23
47
  </div>
24
48
  </div>
25
49
  </div>
26
- <div class="bottom-text-no-more" v-if="!hasMoreLive">
50
+ <div
51
+ v-if="!hasMoreLive"
52
+ class="bottom-text-no-more"
53
+ >
27
54
  <span>{{ t('No More') }}</span>
28
55
  </div>
29
56
  </div>
30
- <div v-else-if="!isLoadingMore" class="no-live">
57
+ <div
58
+ v-else-if="!isLoadingMore"
59
+ class="no-live"
60
+ >
31
61
  <IconNoLiveRoom :size="60" />
32
62
  <span>{{ t('No Live') }}</span>
33
63
  </div>
34
- <div class="bottom-text" v-if="liveList.length > 0 && (isShowMoreVisible || isLoadingMore)">
35
- <span class="load-more-lives" v-if="isShowMoreVisible">{{ t('Load More') }}</span>
36
- <span class="loading" v-if="isLoadingMore">{{ t('Loading...') }}</span>
64
+ <div
65
+ v-if="liveList.length > 0 && (isShowMoreVisible || isLoadingMore)"
66
+ class="bottom-text"
67
+ >
68
+ <span
69
+ v-if="isShowMoreVisible"
70
+ class="load-more-lives"
71
+ >{{ t('Load More') }}</span>
72
+ <span
73
+ v-if="isLoadingMore"
74
+ class="loading"
75
+ >{{ t('Loading...') }}</span>
37
76
  </div>
38
77
  </div>
39
78
  </template>
@@ -42,9 +81,9 @@
42
81
  import { ref, computed, defineEmits, watch } from 'vue';
43
82
  import { useUIKit, IconLiveCoverHeader, IconNoLiveRoom } from '@tencentcloud/uikit-base-component-vue3';
44
83
  import { useLiveState } from '../../states/LiveState';
45
- import { LiveInfo } from '../../types';
46
84
  import { useLoginState } from '../../states/LoginState';
47
85
  import { Avatar } from '../Avatar';
86
+ import type { LiveInfo } from '../../types';
48
87
 
49
88
  const { liveList, currentCursor, fetchLiveList } = useLiveState();
50
89
  const { loginUserInfo } = useLoginState();
@@ -52,30 +91,50 @@ const { t } = useUIKit();
52
91
 
53
92
  const DEFAULT_COVER = 'https://liteav-test-1252463788.cos.ap-guangzhou.myqcloud.com/voice_room/voice_room_cover1.png';
54
93
  const scrollContainerRef = ref<HTMLElement | null>(null);
94
+ const liveListItemsRef = ref<HTMLElement | null>(null);
55
95
 
56
96
  const isLoadingMore = ref(false);
57
97
  const hasMoreLive = computed(() => currentCursor.value !== '');
58
98
 
59
- const shouldFetchMoreLiveList = computed(() => {
60
- return hasMoreLive.value && !isLoadingMore.value;
61
- });
99
+ const liveItemWidth = ref('356px');
100
+ const liveItemHeight = ref('270px');
101
+ const coverWidth = ref('356px');
102
+ const coverHeight = ref('210px');
103
+ const columnCount = 5;
62
104
 
63
- const isShowMoreVisible = computed(() => {
64
- return shouldFetchMoreLiveList.value && !scrollContainerRef.value;
65
- });
105
+ const shouldFetchMoreLiveList = computed(() => hasMoreLive.value && !isLoadingMore.value);
106
+
107
+ const isShowMoreVisible = computed(() => shouldFetchMoreLiveList.value && !scrollContainerRef.value);
66
108
 
67
109
  watch(
68
110
  loginUserInfo,
69
- async user => {
111
+ async (user) => {
70
112
  if (user && user.userId) {
71
113
  isLoadingMore.value = true;
114
+ currentCursor.value = '';
115
+ liveList.value.length = 0;
72
116
  await fetchLiveList({});
73
117
  isLoadingMore.value = false;
74
118
  }
75
119
  },
76
- { immediate: true }
120
+ { immediate: true },
77
121
  );
78
122
 
123
+ watch(liveListItemsRef, () => {
124
+ if (liveListItemsRef.value && screen.width > screen.height) {
125
+ const { width } = liveListItemsRef.value.getBoundingClientRect();
126
+ const gapWidth = 20 * (columnCount - 1);
127
+ const newItemWidth = (width - gapWidth) / columnCount;
128
+ const newItemHeight = newItemWidth * 0.75;
129
+
130
+ liveItemWidth.value = `${newItemWidth}px`;
131
+ liveItemHeight.value = `${newItemHeight}px`;
132
+
133
+ coverWidth.value = `${newItemWidth}px`;
134
+ coverHeight.value = `${newItemHeight - 52}px`;
135
+ }
136
+ });
137
+
79
138
  const emit = defineEmits<{
80
139
  (e: 'live-room-click', liveInfo: LiveInfo): void;
81
140
  }>();
@@ -90,8 +149,8 @@ function isScrollAtBottom(threshold = 50) {
90
149
  return false;
91
150
  }
92
151
  return (
93
- scrollContainerRef.value.scrollTop + scrollContainerRef.value.clientHeight >=
94
- scrollContainerRef.value.scrollHeight - threshold
152
+ scrollContainerRef.value.scrollTop + scrollContainerRef.value.clientHeight
153
+ >= scrollContainerRef.value.scrollHeight - threshold
95
154
  );
96
155
  }
97
156
 
@@ -106,7 +165,9 @@ function handleWheel(event: WheelEvent) {
106
165
  }
107
166
 
108
167
  async function fetchMoreLives() {
109
- if (!hasMoreLive.value || isLoadingMore.value) return;
168
+ if (!hasMoreLive.value || isLoadingMore.value) {
169
+ return;
170
+ }
110
171
  try {
111
172
  isLoadingMore.value = true;
112
173
  await fetchLiveList({ cursor: currentCursor.value });
@@ -126,6 +187,7 @@ function handleCoverImageError(event: Event) {
126
187
  <style lang="scss" scoped>
127
188
  $text-color1: var(--text-color-primary);
128
189
  $text-color2: var(--text-color-secondary);
190
+ $text-color3: var(--text-color-tertiary);
129
191
 
130
192
  @mixin text-size-12 {
131
193
  font-size: 12px;
@@ -164,7 +226,8 @@ $text-color2: var(--text-color-secondary);
164
226
  flex-direction: column;
165
227
  overflow: hidden;
166
228
  align-items: center;
167
- width: 100%;
229
+ margin: 0px 16px;
230
+ width: calc(100% - 32px);
168
231
  height: 100%;
169
232
  }
170
233
 
@@ -181,7 +244,7 @@ $text-color2: var(--text-color-secondary);
181
244
  .live-list-items {
182
245
  width: 100%;
183
246
  display: grid;
184
- grid-template-columns: repeat(auto-fill, 356px);
247
+ grid-template-columns: repeat(auto-fill, v-bind(liveItemWidth));
185
248
  flex-wrap: wrap;
186
249
  justify-content: center;
187
250
  gap: 20px;
@@ -191,8 +254,8 @@ $text-color2: var(--text-color-secondary);
191
254
  display: flex;
192
255
  flex-direction: column;
193
256
  overflow: hidden;
194
- width: 356px;
195
- height: 270px;
257
+ width: v-bind(liveItemWidth);
258
+ height: v-bind(liveItemHeight);
196
259
  white-space: nowrap;
197
260
  text-overflow: ellipsis;
198
261
  gap: 5px;
@@ -204,8 +267,8 @@ $text-color2: var(--text-color-secondary);
204
267
 
205
268
  .live-room-cover {
206
269
  position: relative;
207
- width: 356px;
208
- height: 210px;
270
+ width: v-bind(coverWidth);
271
+ height: v-bind(coverHeight);
209
272
  overflow: hidden;
210
273
 
211
274
  img {
@@ -235,6 +298,7 @@ $text-color2: var(--text-color-secondary);
235
298
 
236
299
  .right {
237
300
  display: flex;
301
+ align-items: center;
238
302
  float: right;
239
303
  margin-right: 10px;
240
304
  gap: 2px;
@@ -244,11 +308,12 @@ $text-color2: var(--text-color-secondary);
244
308
 
245
309
  .live-name {
246
310
  margin: 5px 0px;
311
+ height: 18px;
247
312
  max-width: 200px;
248
313
  overflow: hidden;
249
314
  text-overflow: ellipsis;
250
315
  color: $text-color1;
251
- @include text-size-12;
316
+ @include text-size-14;
252
317
  }
253
318
 
254
319
  .owner-info {
@@ -257,19 +322,13 @@ $text-color2: var(--text-color-secondary);
257
322
  align-items: center;
258
323
  gap: 10px;
259
324
  color: $text-color2;
260
- @include text-size-12;
325
+ @include text-size-14;
261
326
 
262
327
  .owner-name {
263
328
  max-width: 200px;
264
329
  overflow: hidden;
265
330
  text-overflow: ellipsis;
266
331
  }
267
-
268
- img {
269
- width: 24px;
270
- height: 24px;
271
- border-radius: 50%;
272
- }
273
332
  }
274
333
  }
275
334
 
@@ -284,7 +343,7 @@ $text-color2: var(--text-color-secondary);
284
343
  bottom: 5px;
285
344
  text-align: center;
286
345
  transform: translate(-50%, 0);
287
- color: $text-color1;
346
+ color: $text-color3;
288
347
  @include text-size-14;
289
348
  }
290
349
  }