tuikit-atomicx-vue3 3.4.2 → 4.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 (297) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/dist/baseComp/Modal/Modal.js +431 -23
  3. package/dist/chat/index.d.ts +18 -18
  4. package/dist/components/AudioSetting/AudioMediaControl.js +39 -41
  5. package/dist/components/AudioSetting/AudioSettingTab.js +10 -10
  6. package/dist/components/AudioSetting/MicrophoneSelect.js +8 -8
  7. package/dist/components/AudioSetting/SpeakerSelect.js +9 -9
  8. package/dist/components/AudioSettingPanel/i18n/en-US/index.d.ts +1 -0
  9. package/dist/components/AudioSettingPanel/i18n/en-US/index.js +2 -1
  10. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.d.ts +1 -0
  11. package/dist/components/AudioSettingPanel/i18n/zh-CN/index.js +2 -1
  12. package/dist/components/AudioSettingPanel/index.js +81 -73
  13. package/dist/components/BarrageInput/BarrageInputH5.js +9 -9
  14. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +3 -3
  15. package/dist/components/BarrageInput/MessageInputState.d.ts +28 -0
  16. package/dist/components/BarrageInput/MessageInputState.js +82 -0
  17. package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
  18. package/dist/components/BarrageInput/TextEditor/EditorCore.js +2 -2
  19. package/dist/components/BarrageInput/TextEditor/index.js +7 -7
  20. package/dist/components/BarrageInput/type.d.ts +17 -0
  21. package/dist/components/BarrageInput/type.js +4 -0
  22. package/dist/components/BarrageInput/utils.d.ts +30 -0
  23. package/dist/components/BarrageInput/utils.js +41 -0
  24. package/dist/components/BarrageList/BarrageList.js +80 -110
  25. package/dist/components/BarrageList/BarrageList.vue.d.ts +0 -29
  26. package/dist/components/BarrageList/BarrageListH5.js +95 -122
  27. package/dist/components/BarrageList/BarrageListH5.vue.d.ts +0 -29
  28. package/dist/components/BarrageList/BarrageListState.d.ts +58 -0
  29. package/dist/components/BarrageList/BarrageListState.js +106 -0
  30. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.js +16 -24
  31. package/dist/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue.d.ts +5 -5
  32. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.js +48 -73
  33. package/dist/components/BarrageList/Message/MessageLayout/MessageLayout.vue.d.ts +5 -7
  34. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +70 -76
  35. package/dist/components/BarrageList/Message/TextMessage/TextMessage.vue.d.ts +6 -6
  36. package/dist/components/BarrageList/Message/TextMessage/emoji.d.ts +5 -0
  37. package/dist/components/BarrageList/Message/TextMessage/emoji.js +134 -0
  38. package/dist/components/BarrageList/index.d.ts +0 -36
  39. package/dist/components/CameraButton/index.js +18 -19
  40. package/dist/components/CoGuestPanel/CoGuestPanel.js +60 -60
  41. package/dist/components/CoHostPanel/BattlePanel.js +11 -11
  42. package/dist/components/CoHostPanel/CoHostPanel.js +10 -10
  43. package/dist/components/CoHostPanel/ConfigSettingPanel.js +49 -55
  44. package/dist/components/CoHostPanel/ConnectionPanel.js +132 -123
  45. package/dist/components/CoHostPanel/RecommendHostList.js +39 -36
  46. package/dist/components/CoHostPanel/constants.d.ts +3 -0
  47. package/dist/components/CoHostPanel/constants.js +6 -0
  48. package/dist/components/CoHostPanel/i18n/en-US/index.d.ts +1 -0
  49. package/dist/components/CoHostPanel/i18n/en-US/index.js +2 -1
  50. package/dist/components/CoHostPanel/i18n/zh-CN/index.d.ts +1 -0
  51. package/dist/components/CoHostPanel/i18n/zh-CN/index.js +3 -2
  52. package/dist/components/LiveAudienceList/LiveAudienceList.js +44 -45
  53. package/dist/components/LiveAudienceList/LiveAudienceListH5.js +7 -7
  54. package/dist/components/LiveAudienceList/UserActionMenu.js +57 -64
  55. package/dist/components/LiveList/LiveList.js +23 -23
  56. package/dist/components/LiveList/LiveListH5.js +38 -38
  57. package/dist/components/LiveScenePanel/CameraSettingDialog.js +10 -10
  58. package/dist/components/LiveScenePanel/MaterialItem.js +15 -15
  59. package/dist/components/LiveScenePanel/index.js +4 -4
  60. package/dist/components/LiveView/CoreViewDecorate/BattleDecorate.js +58 -58
  61. package/dist/components/LiveView/CoreViewDecorate/BattleUserDecorate.js +6 -6
  62. package/dist/components/LiveView/CoreViewDecorate/CoHostDecorate.js +5 -5
  63. package/dist/components/LiveView/DefaultStreamViewUI.js +44 -41
  64. package/dist/components/LiveView/PlayerControl/AudioControl.js +20 -20
  65. package/dist/components/LiveView/PlayerControl/MultiResolution.js +49 -48
  66. package/dist/components/LiveView/PlayerControl/MultiResolution.vue.d.ts +7 -1
  67. package/dist/components/LiveView/PlayerControl/PlayerControl.js +90 -86
  68. package/dist/components/LiveView/PlayerControl/PlayerControlState.js +127 -131
  69. package/dist/components/LiveView/PlayerControl/utils/domHelpers.d.ts +6 -0
  70. package/dist/components/LiveView/PlayerControl/utils/domHelpers.js +54 -22
  71. package/dist/components/LiveView/i18n/en-US/index.d.ts +2 -2
  72. package/dist/components/LiveView/i18n/en-US/index.js +2 -2
  73. package/dist/components/LiveView/i18n/zh-CN/index.d.ts +2 -2
  74. package/dist/components/LiveView/i18n/zh-CN/index.js +2 -2
  75. package/dist/components/LiveView/index.js +17 -17
  76. package/dist/components/MessageInput/TextEditor/EditorCore.js +2 -2
  77. package/dist/components/MessageList/MessageList.vue.d.ts +2 -2
  78. package/dist/components/MessageList/index.d.ts +18 -18
  79. package/dist/components/MicButton/index.js +11 -11
  80. package/dist/components/StreamMixer/LocalMixer/MixerControl.js +12 -12
  81. package/dist/components/StreamMixer/LocalMixer/index.js +66 -63
  82. package/dist/components/StreamView/Layout/CustomLayout.js +8 -8
  83. package/dist/components/StreamView/Layout/FloatLayout.js +124 -127
  84. package/dist/components/StreamView/Layout/GridLayout.js +5 -5
  85. package/dist/components/StreamView/index.js +25 -33
  86. package/dist/components/StreamView/manager/mediaManager.js +54 -60
  87. package/dist/components/VideoSetting/CameraSelect.js +8 -8
  88. package/dist/components/VideoSetting/VideoMediaControl.js +10 -10
  89. package/dist/components/VideoSetting/VideoPreview.js +9 -9
  90. package/dist/components/VideoSetting/VideoProfile.js +6 -6
  91. package/dist/components/VideoSetting/VideoSettingTab.js +40 -39
  92. package/dist/components/VideoSettingPanel/CameraSelect.js +8 -8
  93. package/dist/components/VideoSettingPanel/VideoPreview.js +1 -1
  94. package/dist/components/VideoSettingPanel/VideoProfile.js +18 -18
  95. package/dist/hooks/useRoomEngine.js +6 -6
  96. package/dist/{index-D2OVtqc8.js → index-BfIEeWMg.js} +191 -181
  97. package/dist/{index-Bm-QfV5o.js → index-DTi1fL-x.js} +460 -457
  98. package/dist/index.js +162 -144
  99. package/dist/report/MetricsKey.d.ts +16 -0
  100. package/dist/report/MetricsKey.js +4 -0
  101. package/dist/report/dataReport.d.ts +12 -0
  102. package/dist/report/dataReport.js +45 -0
  103. package/dist/report/index.d.ts +4 -0
  104. package/dist/report/index.js +6 -0
  105. package/dist/rtc/index.d.ts +5 -43
  106. package/dist/rtc/index.js +48 -48
  107. package/dist/states/BarrageState/BarrageState.d.ts +74 -0
  108. package/dist/states/BarrageState/BarrageState.js +80 -0
  109. package/dist/states/BarrageState/index.d.ts +1 -0
  110. package/dist/states/BarrageState/index.js +5 -0
  111. package/dist/states/{BattleState.d.ts → BattleState/BattleState.d.ts} +10 -11
  112. package/dist/states/BattleState/BattleState.js +203 -0
  113. package/dist/states/BattleState/index.d.ts +1 -0
  114. package/dist/states/BattleState/index.js +4 -0
  115. package/dist/states/CoGuestState.d.ts +24 -94
  116. package/dist/states/CoGuestState.js +297 -189
  117. package/dist/states/CoHostState/CoHostState.d.ts +2 -2
  118. package/dist/states/CoHostState/CoHostState.js +135 -131
  119. package/dist/states/{DeviceState.d.ts → DeviceState/DeviceState.d.ts} +25 -13
  120. package/dist/states/DeviceState/DeviceState.js +314 -0
  121. package/dist/states/DeviceState/index.d.ts +1 -0
  122. package/dist/states/DeviceState/index.js +4 -0
  123. package/dist/states/LiveAudienceState.d.ts +3 -1
  124. package/dist/states/LiveAudienceState.js +106 -63
  125. package/dist/states/{LiveState/index.d.ts → LiveListState/LiveListState.d.ts} +13 -8
  126. package/dist/states/LiveListState/LiveListState.js +285 -0
  127. package/dist/states/LiveListState/index.d.ts +1 -0
  128. package/dist/states/LiveListState/index.js +4 -0
  129. package/dist/states/LiveMonitorState/api/http.js +147 -129
  130. package/dist/states/LiveMonitorState/index.js +67 -62
  131. package/dist/states/LiveSeatState/index.d.ts +46 -11
  132. package/dist/states/LiveSeatState/index.js +34 -15
  133. package/dist/states/LiveSeatState/seatEventManager.d.ts +2 -0
  134. package/dist/states/LiveSeatState/seatEventManager.js +63 -42
  135. package/dist/states/LiveSeatState/seatManager.d.ts +34 -5
  136. package/dist/states/LiveSeatState/seatManager.js +131 -29
  137. package/dist/states/LiveSeatState/store.d.ts +5 -5
  138. package/dist/states/LiveSeatState/store.js +12 -10
  139. package/dist/states/LiveSeatState/usePlayStream/RTCStreamManager.js +1 -1
  140. package/dist/states/LiveSeatState/usePlayStream/RTCStreamPlayer.js +1 -1
  141. package/dist/states/LiveSeatState/usePlayStream/index.js +30 -28
  142. package/dist/states/LoginState.js +39 -34
  143. package/dist/states/SeatStore.js +82 -83
  144. package/dist/states/{VideoMixerState.d.ts → VideoMixerState/VideoMixerState.d.ts} +1 -1
  145. package/dist/states/VideoMixerState/VideoMixerState.js +269 -0
  146. package/dist/states/VideoMixerState/index.d.ts +1 -0
  147. package/dist/states/VideoMixerState/index.js +4 -0
  148. package/dist/styles/index.css +1 -1
  149. package/dist/types/audience.d.ts +21 -0
  150. package/dist/types/audience.js +4 -1
  151. package/dist/types/battle.d.ts +75 -3
  152. package/dist/types/battle.js +5 -1
  153. package/dist/types/coGuest.d.ts +72 -5
  154. package/dist/types/coGuest.js +4 -2
  155. package/dist/types/device.d.ts +38 -17
  156. package/dist/types/device.js +10 -8
  157. package/dist/types/index.d.ts +2 -2
  158. package/dist/types/index.js +96 -80
  159. package/dist/types/live.d.ts +36 -21
  160. package/dist/types/live.js +6 -4
  161. package/dist/types/seat.d.ts +23 -4
  162. package/dist/types/seat.js +7 -1
  163. package/dist/utils/eventCenter.d.ts +88 -0
  164. package/dist/utils/eventCenter.js +161 -0
  165. package/package.json +2 -2
  166. package/src/components/AudioSetting/AudioMediaControl.vue +1 -3
  167. package/src/components/AudioSetting/AudioSettingTab.vue +1 -2
  168. package/src/components/AudioSetting/MicrophoneSelect.vue +1 -2
  169. package/src/components/AudioSetting/SpeakerSelect.vue +1 -2
  170. package/src/components/AudioSettingPanel/i18n/en-US/index.ts +1 -0
  171. package/src/components/AudioSettingPanel/i18n/zh-CN/index.ts +1 -0
  172. package/src/components/AudioSettingPanel/index.vue +4 -2
  173. package/src/components/BarrageInput/BarrageInputH5.vue +1 -1
  174. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  175. package/src/components/BarrageInput/MessageInputState.ts +160 -0
  176. package/src/components/BarrageInput/TextEditor/TextEditor.vue +1 -1
  177. package/src/components/BarrageInput/type.ts +26 -0
  178. package/src/components/BarrageInput/utils.ts +45 -0
  179. package/src/components/BarrageList/BarrageList.vue +61 -117
  180. package/src/components/BarrageList/BarrageListH5.vue +75 -159
  181. package/src/components/BarrageList/BarrageListState.ts +223 -0
  182. package/src/components/BarrageList/Message/MessageLayout/MessageBubble/MessageBubble.vue +8 -55
  183. package/src/components/BarrageList/Message/MessageLayout/MessageLayout.vue +19 -44
  184. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +69 -96
  185. package/src/components/BarrageList/Message/TextMessage/emoji.ts +132 -0
  186. package/src/components/CameraButton/index.vue +0 -1
  187. package/src/components/CoGuestPanel/CoGuestPanel.vue +16 -91
  188. package/src/components/CoHostPanel/BattlePanel.vue +1 -4
  189. package/src/components/CoHostPanel/ConfigSettingPanel.vue +2 -8
  190. package/src/components/CoHostPanel/ConnectionPanel.vue +37 -33
  191. package/src/components/CoHostPanel/RecommendHostList.vue +12 -13
  192. package/src/components/CoHostPanel/constants.ts +3 -0
  193. package/src/components/CoHostPanel/i18n/en-US/index.ts +1 -0
  194. package/src/components/CoHostPanel/i18n/zh-CN/index.ts +2 -1
  195. package/src/components/LiveAudienceList/LiveAudienceList.vue +4 -5
  196. package/src/components/LiveAudienceList/LiveAudienceListH5.vue +2 -2
  197. package/src/components/LiveAudienceList/UserActionMenu.vue +7 -48
  198. package/src/components/LiveList/LiveList.vue +5 -5
  199. package/src/components/LiveList/LiveListH5.vue +6 -6
  200. package/src/components/LiveScenePanel/index.vue +2 -2
  201. package/src/components/LiveView/CoreViewDecorate/BattleDecorate.vue +10 -15
  202. package/src/components/LiveView/CoreViewDecorate/BattleUserDecorate.vue +2 -2
  203. package/src/components/LiveView/DefaultStreamViewUI.vue +5 -3
  204. package/src/components/LiveView/PlayerControl/AudioControl.vue +1 -1
  205. package/src/components/LiveView/PlayerControl/MultiResolution.vue +9 -3
  206. package/src/components/LiveView/PlayerControl/PlayerControl.vue +10 -2
  207. package/src/components/LiveView/PlayerControl/PlayerControlState.ts +233 -259
  208. package/src/components/LiveView/PlayerControl/utils/domHelpers.ts +64 -0
  209. package/src/components/LiveView/i18n/en-US/index.ts +2 -2
  210. package/src/components/LiveView/i18n/zh-CN/index.ts +2 -2
  211. package/src/components/LiveView/index.vue +2 -2
  212. package/src/components/MicButton/index.vue +3 -3
  213. package/src/components/StreamMixer/LocalMixer/index.vue +6 -8
  214. package/src/components/StreamView/Layout/CustomLayout.vue +2 -2
  215. package/src/components/StreamView/Layout/FloatLayout.vue +88 -83
  216. package/src/components/StreamView/index.vue +28 -14
  217. package/src/components/StreamView/manager/mediaManager.ts +38 -42
  218. package/src/components/VideoSetting/CameraSelect.vue +1 -2
  219. package/src/components/VideoSetting/VideoMediaControl.vue +1 -1
  220. package/src/components/VideoSetting/VideoPreview.vue +1 -2
  221. package/src/components/VideoSetting/VideoProfile.vue +1 -1
  222. package/src/components/VideoSetting/VideoSettingTab.vue +9 -5
  223. package/src/components/VideoSettingPanel/CameraSelect.vue +1 -2
  224. package/src/components/VideoSettingPanel/VideoProfile.vue +7 -7
  225. package/src/hooks/useRoomEngine.ts +1 -1
  226. package/src/report/MetricsKey.ts +16 -0
  227. package/src/report/dataReport.ts +55 -0
  228. package/src/report/index.ts +7 -0
  229. package/src/rtc/index.ts +7 -9
  230. package/src/types/audience.ts +27 -1
  231. package/src/types/battle.ts +87 -4
  232. package/src/types/coGuest.ts +87 -5
  233. package/src/types/device.ts +41 -16
  234. package/src/types/index.ts +2 -2
  235. package/src/types/live.ts +41 -22
  236. package/src/types/seat.ts +28 -4
  237. package/src/utils/eventCenter.ts +249 -0
  238. package/dist/DialogPortal-CvJcEAsn.js +0 -417
  239. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.js +0 -23
  240. package/dist/components/BarrageList/Message/FaceMessage/FaceMessage.vue.d.ts +0 -30
  241. package/dist/components/BarrageList/Message/FaceMessage/index.d.ts +0 -3
  242. package/dist/components/BarrageList/Message/FaceMessage/index.js +0 -4
  243. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.js +0 -4
  244. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +0 -16
  245. package/dist/components/BarrageList/Message/GroupTipMessage/index.d.ts +0 -3
  246. package/dist/components/BarrageList/Message/GroupTipMessage/index.js +0 -25
  247. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.js +0 -71
  248. package/dist/components/BarrageList/Message/ImageMessage/ImageMessage.vue.d.ts +0 -34
  249. package/dist/components/BarrageList/Message/ImageMessage/index.d.ts +0 -3
  250. package/dist/components/BarrageList/Message/ImageMessage/index.js +0 -4
  251. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.js +0 -9
  252. package/dist/components/BarrageList/Message/MergerMessage/MergerMessage.vue.d.ts +0 -2
  253. package/dist/components/BarrageList/Message/MergerMessage/index.d.ts +0 -3
  254. package/dist/components/BarrageList/Message/MergerMessage/index.js +0 -4
  255. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.js +0 -40
  256. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue.d.ts +0 -54
  257. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.js +0 -26
  258. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue.d.ts +0 -15
  259. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.d.ts +0 -3
  260. package/dist/components/BarrageList/Message/MessageLayout/MessageMeta/index.js +0 -4
  261. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.js +0 -41
  262. package/dist/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue.d.ts +0 -35
  263. package/dist/components/BarrageList/Message/RecalledMessage/index.d.ts +0 -3
  264. package/dist/components/BarrageList/Message/RecalledMessage/index.js +0 -4
  265. package/dist/components/BarrageList/MessageForward/ForwardListItem.js +0 -45
  266. package/dist/components/BarrageList/MessageForward/ForwardListItem.vue.d.ts +0 -17
  267. package/dist/components/BarrageList/MessageForward/MessageForward.js +0 -203
  268. package/dist/components/BarrageList/MessageForward/MessageForward.vue.d.ts +0 -2
  269. package/dist/components/BarrageList/MessageForward/index.d.ts +0 -3
  270. package/dist/components/BarrageList/MessageForward/index.js +0 -4
  271. package/dist/components/StreamView/Layout/MixLayout.js +0 -89
  272. package/dist/components/StreamView/Layout/MixLayout.vue.d.ts +0 -31
  273. package/dist/states/BarrageListState/BarrageListState.d.ts +0 -26
  274. package/dist/states/BarrageListState/BarrageListState.js +0 -122
  275. package/dist/states/BarrageListState/index.d.ts +0 -1
  276. package/dist/states/BarrageListState/index.js +0 -4
  277. package/dist/states/BattleState.js +0 -117
  278. package/dist/states/DeviceState.js +0 -296
  279. package/dist/states/LiveState/index.js +0 -254
  280. package/dist/states/VideoMixerState.js +0 -260
  281. package/src/components/BarrageList/Message/FaceMessage/FaceMessage.vue +0 -43
  282. package/src/components/BarrageList/Message/FaceMessage/index.ts +0 -3
  283. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +0 -55
  284. package/src/components/BarrageList/Message/GroupTipMessage/index.ts +0 -3
  285. package/src/components/BarrageList/Message/ImageMessage/ImageMessage.vue +0 -181
  286. package/src/components/BarrageList/Message/ImageMessage/index.ts +0 -3
  287. package/src/components/BarrageList/Message/MergerMessage/MergerMessage.vue +0 -6
  288. package/src/components/BarrageList/Message/MergerMessage/index.ts +0 -3
  289. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageMeta.vue +0 -70
  290. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/MessageStatusIcon.vue +0 -40
  291. package/src/components/BarrageList/Message/MessageLayout/MessageMeta/index.ts +0 -3
  292. package/src/components/BarrageList/Message/RecalledMessage/RecalledMessage.vue +0 -82
  293. package/src/components/BarrageList/Message/RecalledMessage/index.ts +0 -3
  294. package/src/components/BarrageList/MessageForward/ForwardListItem.vue +0 -67
  295. package/src/components/BarrageList/MessageForward/MessageForward.vue +0 -388
  296. package/src/components/BarrageList/MessageForward/index.ts +0 -3
  297. package/src/components/StreamView/Layout/MixLayout.vue +0 -144
@@ -1,67 +1,49 @@
1
1
  <script lang="ts" setup>
2
2
  import { toRefs, computed, withDefaults, defineProps } from 'vue';
3
- import TencentCloudChat from '@tencentcloud/chat-uikit-engine';
4
3
  import cs from 'classnames';
4
+ import { BarrageType } from '../../../../states/BarrageState';
5
+ import { useLoginState } from '../../../../states/LoginState';
5
6
  import { CustomMessage } from '../CustomMessage';
6
- import { FaceMessage } from '../FaceMessage';
7
- import { GroupTipMessage } from '../GroupTipMessage';
8
- import { ImageMessage } from '../ImageMessage';
9
- import { MergerMessage } from '../MergerMessage';
10
- import { RecalledMessage } from '../RecalledMessage';
11
7
  import { TextMessage } from '../TextMessage';
12
8
  import { MessageBubble } from './MessageBubble';
13
- import { MessageMeta } from './MessageMeta';
14
- import type { IMessageModel } from '@tencentcloud/chat-uikit-engine';
9
+ import type { Barrage } from '../../../../states/BarrageState';
15
10
 
16
11
  interface IMessageLayoutProps {
17
- message: IMessageModel;
12
+ message: Barrage;
18
13
  isLastInChunk?: boolean;
19
- // messageActionList?: IMessageAction[];
20
14
  className?: string;
21
15
  style?: Record<string, any>;
22
16
  }
23
17
 
24
18
  const props = withDefaults(defineProps<IMessageLayoutProps>(), {
25
- message: () => ({}) as IMessageModel,
19
+ message: () => ({}) as Barrage,
26
20
  isLastInChunk: true,
27
- messageActionList: () => [],
28
21
  className: '',
29
22
  style: () => ({}),
30
23
  });
31
24
 
25
+ const { loginUserInfo } = useLoginState();
32
26
  const {
33
27
  message,
34
28
  isLastInChunk,
35
- // messageActionList,
36
29
  className,
37
30
  style,
38
31
  } = toRefs(props);
39
32
 
40
33
  const MessageComponentsFactory = {
41
- [TencentCloudChat.TYPES.MSG_TEXT]: TextMessage,
42
- [TencentCloudChat.TYPES.MSG_IMAGE]: ImageMessage,
43
- [TencentCloudChat.TYPES.MSG_FACE]: FaceMessage,
44
- [TencentCloudChat.TYPES.MSG_MERGER]: MergerMessage,
45
- [TencentCloudChat.TYPES.MSG_CUSTOM]: CustomMessage,
46
- [TencentCloudChat.TYPES.MSG_GRP_TIP]: GroupTipMessage,
34
+ [BarrageType.text]: TextMessage,
35
+ [BarrageType.custom]: CustomMessage,
47
36
  };
48
37
 
49
- const MessageComponent = computed(() => MessageComponentsFactory[message.value.type as any]);
38
+ const MessageComponent = computed(() => MessageComponentsFactory[message.value.messageType]);
50
39
 
51
- const isMessageOwner = computed(() => message.value.flow === 'out');
40
+ const isMessageOwner = computed(() => message.value.sender.userId === loginUserInfo.value?.userId);
52
41
  </script>
53
42
 
54
43
  <template>
55
- <RecalledMessage v-if="message.isRevoked" class="message-recalled" :message="message" />
56
- <GroupTipMessage
57
- v-else-if="
58
- message.type === TencentCloudChat.TYPES.MSG_GRP_TIP || message.type === TencentCloudChat.TYPES.MSG_CUSTOM
59
- "
60
- :message="message"
61
- />
62
44
  <div
63
- v-else-if="MessageComponent"
64
- :data-message-id="message.ID"
45
+ v-if="MessageComponent"
46
+ :data-message-id="message.sequence"
65
47
  :class="
66
48
  cs(
67
49
  'message-layout',
@@ -83,10 +65,10 @@ const isMessageOwner = computed(() => message.value.flow === 'out');
83
65
  "
84
66
  >
85
67
  <div
86
- v-if="isLastInChunk && message.type !== TencentCloudChat.TYPES.MSG_TEXT"
68
+ v-if="isLastInChunk && message.messageType !== BarrageType.text"
87
69
  :class="cs('message-layout__nick')"
88
70
  >
89
- {{ message.nick + ': ' }}
71
+ {{ message.sender.nameCard || message.sender.userName || message.sender.userId + ': ' }}
90
72
  </div>
91
73
  <MessageBubble
92
74
  :class="
@@ -97,20 +79,13 @@ const isMessageOwner = computed(() => message.value.flow === 'out');
97
79
  :message="message"
98
80
  :is-last-in-chunk="isLastInChunk"
99
81
  >
100
- <component :is="MessageComponent" :message="message" :is-last-in-chunk="isLastInChunk" />
82
+ <component
83
+ :is="MessageComponent"
84
+ :message="message"
85
+ :is-last-in-chunk="isLastInChunk"
86
+ />
101
87
  </MessageBubble>
102
88
  </div>
103
- <MessageMeta
104
- v-if="isLastInChunk"
105
- :class="
106
- cs('message-layout__meta', {
107
- 'message-layout__meta--self': isMessageOwner,
108
- })
109
- "
110
- :status="message.status"
111
- :is-show-read-status="true"
112
- :timestamp="message.time"
113
- />
114
89
  </div>
115
90
  </div>
116
91
  </template>
@@ -1,41 +1,20 @@
1
1
  <template>
2
2
  <div class="text-message">
3
- <div
4
- v-if="referencedInfo.content"
5
- :class="
6
- cs('text-message__reference', {
7
- 'text-danger': isOriginMessageHasRecalled,
8
- })
9
- "
10
- @click="handleReferenceClick"
11
- >
12
- <template v-if="isOriginMessageHasRecalled">
13
- {{ t('TUIChat.origin message has been recalled') }}
14
- </template>
15
- <template v-else>
16
- <div class="text-message__reference__header">
17
- {{ referencedInfo.sender }}
18
- </div>
19
- <div class="text-message__reference__content">
20
- {{ referencedInfo.content }}
21
- </div>
22
- </template>
23
- </div>
24
3
  <div class="text-message__content">
25
4
  <component
26
5
  :is="context.slots['user-badge']"
27
6
  :message="message"
28
7
  />
29
- <span class="user-badge" v-if="message.from === currentLive?.liveOwner.userId && !context.slots['user-badge']">{{ t('Anchor') }}</span>
8
+ <span v-if="message.sender.userId === currentLive?.liveOwner.userId && !context.slots['user-badge']" class="user-badge">{{ t('Anchor') }}</span>
30
9
  <span
31
10
  class="text-message__content__nick"
32
11
  @click="handleNickClick"
33
12
  >
34
13
  {{
35
- `${message.nick || message.from}: `
14
+ `${message.sender.nameCard || message.sender.userName || message.sender.userId}: `
36
15
  }}</span>
37
16
  <template
38
- v-for="(item, index) in messageContent.text"
17
+ v-for="(item, index) in messageContent"
39
18
  :key="index"
40
19
  >
41
20
  <span
@@ -58,98 +37,92 @@
58
37
  <script lang="ts" setup>
59
38
  import type { VueElement } from 'vue';
60
39
  import { computed, withDefaults, defineProps } from 'vue';
61
- import { TUIStore } from '@tencentcloud/chat-uikit-engine';
62
- import { useUIKit, TUIToast } from '@tencentcloud/uikit-base-component-vue3';
63
- import cs from 'classnames';
64
- import { useScroll } from '../../../../hooks/useScroll';
65
- import { useBarrageListState } from '../../../../states/BarrageListState';
66
- import { useLiveState } from '../../../../states/LiveState';
67
- import { safeJSONParse } from '../../../../utils/json';
40
+ import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
41
+ import { useLiveListState } from '../../../../states/LiveListState';
68
42
  import { useMessageListContext } from '../../MessageListContext';
69
- import type { ICloudCustomData } from '../../../../types/message';
70
- import type { IMessageModel } from '@tencentcloud/chat-uikit-engine';
43
+ import { BASEURL, BASIC_EMOJI_URL_MAPPING } from './emoji';
44
+ import type { Barrage } from '../../../../states/BarrageState';
71
45
 
72
- const { currentLive } = useLiveState();
46
+ const { currentLive } = useLiveListState();
73
47
  const context: {
74
48
  slots: Record<string, () => VueElement>;
75
- nickClick: (payload: { message: IMessageModel; event: MouseEvent }) => void;
49
+ nickClick: (data: { message: Barrage; event: MouseEvent }) => void;
76
50
  } = useMessageListContext('');
77
51
 
78
52
  const props = withDefaults(
79
53
  defineProps<{
80
- message: IMessageModel;
54
+ message: Barrage;
81
55
  isLastInChunk: boolean;
82
56
  }>(),
83
57
  {
84
- message: () => ({}) as IMessageModel,
58
+ message: () => ({}) as Barrage,
85
59
  isLastInChunk: false,
86
60
  },
87
61
  );
88
62
 
89
63
  const { t } = useUIKit();
90
- const { scrollToMessage } = useScroll();
91
- const { highlightMessageIDList, recalledMessageIDSet } = useBarrageListState();
92
64
 
93
- const messageContent = computed(
94
- () =>
95
- props.message.getMessageContent() as {
96
- showName: string;
97
- text: Array<
98
- | {
99
- name: 'text';
100
- text: string;
101
- }
102
- | {
103
- name: 'img';
104
- src: string;
105
- emojiKey?: string;
65
+ const messageContent = computed(() => {
66
+ const renderDom = [];
67
+ let temp = props.message.textContent || '';
68
+ let left = -1;
69
+ let right = -1;
70
+ while (temp !== '') {
71
+ left = temp.indexOf('[');
72
+ right = temp.indexOf(']');
73
+ switch (left) {
74
+ case 0:
75
+ if (right === -1) {
76
+ renderDom.push({
77
+ name: 'text',
78
+ text: temp,
79
+ });
80
+ temp = '';
81
+ } else {
82
+ const emojiKey = temp.slice(0, right + 1);
83
+ // 自定义 emoji 表情 emojiKey 必须带 @custom 标识,比如:'[@custom_Smile]'
84
+ if (emojiKey.indexOf('@custom') > -1) {
85
+ renderDom.push({
86
+ name: 'img',
87
+ src: '',
88
+ type: 'custom',
89
+ emojiKey,
90
+ });
91
+ temp = temp.substring(right + 1);
92
+ } else if (BASIC_EMOJI_URL_MAPPING[emojiKey]) {
93
+ renderDom.push({
94
+ name: 'img',
95
+ src: BASEURL.emoji + BASIC_EMOJI_URL_MAPPING[emojiKey],
96
+ emojiKey,
97
+ });
98
+ temp = temp.substring(right + 1);
99
+ } else {
100
+ renderDom.push({
101
+ name: 'text',
102
+ text: '[',
103
+ });
104
+ temp = temp.slice(1);
105
+ }
106
106
  }
107
- >;
108
- },
109
- );
110
-
111
- const referencedInfo = computed(() => {
112
- const cloudCustomData = safeJSONParse(props.message?.cloudCustomData, {}) as Partial<ICloudCustomData>;
113
- const content = cloudCustomData?.messageReply?.messageAbstract || '';
114
- const sender = cloudCustomData?.messageReply?.messageSender || '';
115
- const messageID = cloudCustomData?.messageReply?.messageID || '';
116
- return {
117
- content,
118
- sender,
119
- messageID,
120
- };
121
- });
122
-
123
- const isOriginMessageHasRecalled = computed(() => recalledMessageIDSet.value.has(referencedInfo.value.messageID));
124
-
125
- const handleReferenceClick = () => {
126
- if (referencedInfo.value.messageID) {
127
- const { messageID } = referencedInfo.value;
128
-
129
- const messageModel = TUIStore.getMessageModel(messageID);
130
- if (isOriginMessageHasRecalled.value || !messageModel || messageModel.isDeleted || messageModel.isRevoked) {
131
- TUIToast.error({
132
- message: t('TUIChat.Message has been deleted or recalled'),
133
- });
134
- return;
135
- }
136
-
137
- const isExist = highlightMessageIDList.value.includes(messageID);
138
-
139
- if (!isExist) {
140
- highlightMessageIDList.value.push(messageID);
141
- setTimeout(() => {
142
- highlightMessageIDList.value = highlightMessageIDList.value.filter(id => id !== messageID);
143
- }, 3000);
107
+ break;
108
+ case -1:
109
+ renderDom.push({
110
+ name: 'text',
111
+ text: temp,
112
+ });
113
+ temp = '';
114
+ break;
115
+ default:
116
+ renderDom.push({
117
+ name: 'text',
118
+ text: temp.slice(0, left),
119
+ });
120
+ temp = temp.substring(left);
121
+ break;
144
122
  }
145
-
146
- scrollToMessage(messageID, {
147
- block: 'center',
148
- skipIfVisible: true,
149
- behavior: 'instant',
150
- }).catch(() => {});
151
123
  }
152
- };
124
+ return renderDom;
125
+ });
153
126
 
154
127
  const handleNickClick = (event: MouseEvent) => {
155
128
  context.nickClick({
@@ -0,0 +1,132 @@
1
+ export const BASEURL = {
2
+ emoji: 'https://web.sdk.qcloud.com/im/assets/emoji-plugin/',
3
+ };
4
+ export const BASIC_EMOJI_URL_MAPPING: Record<string, string> = {
5
+ '[TUIEmoji_Expect]': 'emoji_0@2x.png',
6
+ '[TUIEmoji_Blink]': 'emoji_1@2x.png',
7
+ '[TUIEmoji_Guffaw]': 'emoji_2@2x.png',
8
+ '[TUIEmoji_KindSmile]': 'emoji_3@2x.png',
9
+ '[TUIEmoji_Haha]': 'emoji_4@2x.png',
10
+ '[TUIEmoji_Cheerful]': 'emoji_5@2x.png',
11
+ '[TUIEmoji_Smile]': 'emoji_6@2x.png',
12
+ '[TUIEmoji_Sorrow]': 'emoji_7@2x.png',
13
+ '[TUIEmoji_Speechless]': 'emoji_8@2x.png',
14
+ '[TUIEmoji_Amazed]': 'emoji_9@2x.png',
15
+ '[TUIEmoji_Complacent]': 'emoji_10@2x.png',
16
+ '[TUIEmoji_Lustful]': 'emoji_11@2x.png',
17
+ '[TUIEmoji_Stareyes]': 'emoji_12@2x.png',
18
+ '[TUIEmoji_Giggle]': 'emoji_13@2x.png',
19
+ '[TUIEmoji_Daemon]': 'emoji_14@2x.png',
20
+ '[TUIEmoji_Rage]': 'emoji_15@2x.png',
21
+ '[TUIEmoji_Yawn]': 'emoji_16@2x.png',
22
+ '[TUIEmoji_TearsLaugh]': 'emoji_17@2x.png',
23
+ '[TUIEmoji_Silly]': 'emoji_18@2x.png',
24
+ '[TUIEmoji_Wail]': 'emoji_19@2x.png',
25
+ '[TUIEmoji_Kiss]': 'emoji_20@2x.png',
26
+ '[TUIEmoji_Trapped]': 'emoji_21@2x.png',
27
+ '[TUIEmoji_Fear]': 'emoji_22@2x.png',
28
+ '[TUIEmoji_BareTeeth]': 'emoji_23@2x.png',
29
+ '[TUIEmoji_FlareUp]': 'emoji_24@2x.png',
30
+ '[TUIEmoji_Tact]': 'emoji_25@2x.png',
31
+ '[TUIEmoji_Shit]': 'emoji_26@2x.png',
32
+ '[TUIEmoji_ShutUp]': 'emoji_27@2x.png',
33
+ '[TUIEmoji_Sigh]': 'emoji_28@2x.png',
34
+ '[TUIEmoji_Hehe]': 'emoji_29@2x.png',
35
+ '[TUIEmoji_Silent]': 'emoji_30@2x.png',
36
+ '[TUIEmoji_Skull]': 'emoji_31@2x.png',
37
+ '[TUIEmoji_Mask]': 'emoji_32@2x.png',
38
+ '[TUIEmoji_Beer]': 'emoji_33@2x.png',
39
+ '[TUIEmoji_Cake]': 'emoji_34@2x.png',
40
+ '[TUIEmoji_RedPacket]': 'emoji_35@2x.png',
41
+ '[TUIEmoji_Bombs]': 'emoji_36@2x.png',
42
+ '[TUIEmoji_Ai]': 'emoji_37@2x.png',
43
+ '[TUIEmoji_Celebrate]': 'emoji_38@2x.png',
44
+ '[TUIEmoji_Bless]': 'emoji_39@2x.png',
45
+ '[TUIEmoji_Flower]': 'emoji_40@2x.png',
46
+ '[TUIEmoji_Watermelon]': 'emoji_41@2x.png',
47
+ '[TUIEmoji_Cow]': 'emoji_42@2x.png',
48
+ '[TUIEmoji_Fool]': 'emoji_43@2x.png',
49
+ '[TUIEmoji_Surprised]': 'emoji_44@2x.png',
50
+ '[TUIEmoji_Askance]': 'emoji_45@2x.png',
51
+ '[TUIEmoji_Monster]': 'emoji_46@2x.png',
52
+ '[TUIEmoji_Pig]': 'emoji_47@2x.png',
53
+ '[TUIEmoji_Coffee]': 'emoji_48@2x.png',
54
+ '[TUIEmoji_Ok]': 'emoji_49@2x.png',
55
+ '[TUIEmoji_Heart]': 'emoji_50@2x.png',
56
+ '[TUIEmoji_Sun]': 'emoji_51@2x.png',
57
+ '[TUIEmoji_Moon]': 'emoji_52@2x.png',
58
+ '[TUIEmoji_Star]': 'emoji_53@2x.png',
59
+ '[TUIEmoji_Rich]': 'emoji_54@2x.png',
60
+ '[TUIEmoji_Fortune]': 'emoji_55@2x.png',
61
+ '[TUIEmoji_857]': 'emoji_56@2x.png',
62
+ '[TUIEmoji_666]': 'emoji_57@2x.png',
63
+ '[TUIEmoji_Prohibit]': 'emoji_58@2x.png',
64
+ '[TUIEmoji_Convinced]': 'emoji_59@2x.png',
65
+ '[TUIEmoji_Knife]': 'emoji_60@2x.png',
66
+ '[TUIEmoji_Like]': 'emoji_61@2x.png',
67
+ };
68
+
69
+ export const BASIC_EMOJI_NAME_MAPPING: Record<string, string> = {
70
+ '[TUIEmoji_Smile]': '[Smile]',
71
+ '[TUIEmoji_Expect]': '[Expect]',
72
+ '[TUIEmoji_Blink]': '[Blink]',
73
+ '[TUIEmoji_Guffaw]': '[Laugh]',
74
+ '[TUIEmoji_KindSmile]': '[Kind Smile]',
75
+ '[TUIEmoji_Haha]': '[Haha]',
76
+ '[TUIEmoji_Cheerful]': '[Cheerful]',
77
+ '[TUIEmoji_Speechless]': '[Speechless]',
78
+ '[TUIEmoji_Amazed]': '[Amazed]',
79
+ '[TUIEmoji_Sorrow]': '[Sorrow]',
80
+ '[TUIEmoji_Complacent]': '[Complacent]',
81
+ '[TUIEmoji_Silly]': '[Silly]',
82
+ '[TUIEmoji_Lustful]': '[Lustful]',
83
+ '[TUIEmoji_Giggle]': '[Giggle]',
84
+ '[TUIEmoji_Kiss]': '[Kiss]',
85
+ '[TUIEmoji_Wail]': '[Wail]',
86
+ '[TUIEmoji_TearsLaugh]': '[Tears of Laughter]',
87
+ '[TUIEmoji_Trapped]': '[Trapped]',
88
+ '[TUIEmoji_Mask]': '[Mask]',
89
+ '[TUIEmoji_Fear]': '[Fear]',
90
+ '[TUIEmoji_BareTeeth]': '[Bare Teeth]',
91
+ '[TUIEmoji_FlareUp]': '[Flare Up]',
92
+ '[TUIEmoji_Yawn]': '[Yawn]',
93
+ '[TUIEmoji_Tact]': '[Tact]',
94
+ '[TUIEmoji_Stareyes]': '[Star Eyes]',
95
+ '[TUIEmoji_ShutUp]': '[Shut Up]',
96
+ '[TUIEmoji_Sigh]': '[Sigh]',
97
+ '[TUIEmoji_Hehe]': '[Hehe]',
98
+ '[TUIEmoji_Silent]': '[Silent]',
99
+ '[TUIEmoji_Surprised]': '[Surprised]',
100
+ '[TUIEmoji_Askance]': '[Askance]',
101
+ '[TUIEmoji_Ok]': '[OK]',
102
+ '[TUIEmoji_Shit]': '[Poop]',
103
+ '[TUIEmoji_Monster]': '[Monster]',
104
+ '[TUIEmoji_Daemon]': '[Daemon]',
105
+ '[TUIEmoji_Rage]': '[Rage]',
106
+ '[TUIEmoji_Fool]': '[Fool]',
107
+ '[TUIEmoji_Pig]': '[Pig]',
108
+ '[TUIEmoji_Cow]': '[Cow]',
109
+ '[TUIEmoji_Ai]': '[AI]',
110
+ '[TUIEmoji_Skull]': '[Skull]',
111
+ '[TUIEmoji_Bombs]': '[Bombs]',
112
+ '[TUIEmoji_Coffee]': '[Coffee]',
113
+ '[TUIEmoji_Cake]': '[Cake]',
114
+ '[TUIEmoji_Beer]': '[Beer]',
115
+ '[TUIEmoji_Flower]': '[Flower]',
116
+ '[TUIEmoji_Watermelon]': '[Watermelon]',
117
+ '[TUIEmoji_Rich]': '[Rich]',
118
+ '[TUIEmoji_Heart]': '[Heart]',
119
+ '[TUIEmoji_Moon]': '[Moon]',
120
+ '[TUIEmoji_Sun]': '[Sun]',
121
+ '[TUIEmoji_Star]': '[Star]',
122
+ '[TUIEmoji_RedPacket]': '[Red Packet]',
123
+ '[TUIEmoji_Celebrate]': '[Celebrate]',
124
+ '[TUIEmoji_Bless]': '[Bless]',
125
+ '[TUIEmoji_Fortune]': '[Fortune]',
126
+ '[TUIEmoji_Convinced]': '[Convinced]',
127
+ '[TUIEmoji_Prohibit]': '[Prohibit]',
128
+ '[TUIEmoji_666]': '[666]',
129
+ '[TUIEmoji_857]': '[857]',
130
+ '[TUIEmoji_Knife]': '[Knife]',
131
+ '[TUIEmoji_Like]': '[Like]',
132
+ };
@@ -16,7 +16,6 @@ import { DeviceStatus, DeviceError } from '../../types';
16
16
 
17
17
  const {
18
18
  cameraStatus,
19
- hasPublishVideoPermission,
20
19
  cameraLastError,
21
20
  closeLocalCamera,
22
21
  openLocalCamera,
@@ -22,12 +22,12 @@
22
22
  class="applications-content"
23
23
  >
24
24
  <div
25
- v-if="receivedCoGuestUserList.length > 0"
25
+ v-if="applicants.length > 0"
26
26
  class="user-list-container"
27
27
  >
28
28
  <div class="user-list">
29
29
  <div
30
- v-for="user in receivedCoGuestUserList"
30
+ v-for="user in applicants"
31
31
  :key="user.userId"
32
32
  class="user-item"
33
33
  >
@@ -73,13 +73,13 @@
73
73
  <div class="user-list-title">
74
74
  <span class="user-list-title-text">{{ t('Current seat') }}</span>
75
75
  <span class="user-list-title-count">
76
- {{ `(${userListInCoGuest.length})` }}
77
- <!-- {{ `(${userListInCoGuest.length}/${ seatList.length})` }} -->
76
+ {{ `(${connected.length})` }}
77
+ <!-- {{ `(${connected.length}/${ seatList.length})` }} -->
78
78
  </span>
79
79
  </div>
80
80
  <div class="user-list">
81
81
  <div
82
- v-for="user in userListInCoGuest"
82
+ v-for="user in connected"
83
83
  :key="user.userId"
84
84
  class="user-item"
85
85
  >
@@ -112,83 +112,12 @@
112
112
  </div>
113
113
  </div>
114
114
  <div
115
- v-if="userListInCoGuest.length === 0"
115
+ v-if="connected.length === 0"
116
116
  class="empty-state"
117
117
  >
118
118
  <span>{{ t('Seat is empty') }}</span>
119
119
  </div>
120
120
  </div>
121
- <!-- <div
122
- v-if="sentCoGuestUserList.length > 0"
123
- class="user-list-container"
124
- >
125
- <div class="user-list-title">
126
- <span class="user-list-title-text">{{ t('Inviting') }}</span>
127
- </div>
128
- <div class="user-list">
129
- <div
130
- v-for="user in sentCoGuestUserList"
131
- :key="user.userId"
132
- class="user-item"
133
- >
134
- <div class="user-item-left">
135
- <Avatar :src="user.avatarUrl" :size="40" />
136
- </div>
137
- <div class="user-item-right">
138
- <div class="user-info">
139
- <span class="user-name">{{ user.userName || user.userId }}</span>
140
- </div>
141
- <div class="user-actions">
142
- <TUIButton
143
- color="gray"
144
- @click="cancelCoGuestRequest({ userId: user.userId })"
145
- >
146
- {{
147
- t('Cancel')
148
- }}
149
- </TUIButton>
150
- </div>
151
- </div>
152
- </div>
153
- </div>
154
- </div>
155
- <div class="user-list-container">
156
- <div class="user-list-title">
157
- <span class="user-list-title-text">{{ t('Invite more') }}</span>
158
- </div>
159
- <div class="user-list">
160
- <div
161
- v-for="user in availableCoGuestUserList"
162
- :key="user.userId"
163
- class="user-item"
164
- >
165
- <div class="user-item-left">
166
- <Avatar :src="user.avatarUrl" :size="40" />
167
- </div>
168
- <div class="user-item-right">
169
- <div class="user-info">
170
- <span class="user-name">{{ user.userName || user.userId }}</span>
171
- </div>
172
- <div class="user-actions">
173
- <TUIButton
174
- color="gray"
175
- @click="sendCoGuestRequest({ userId: user.userId })"
176
- >
177
- {{
178
- t('Invite')
179
- }}
180
- </TUIButton>
181
- </div>
182
- </div>
183
- </div>
184
- </div>
185
- <div
186
- v-if="availableCoGuestUserList.length === 0"
187
- class="empty-state"
188
- >
189
- <span>{{ t('No invited users yet') }}</span>
190
- </div>
191
- </div> -->
192
121
  </div>
193
122
  </div>
194
123
  </div>
@@ -199,32 +128,28 @@ import { ref } from 'vue';
199
128
  import { TUIButton, TUIToast, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
200
129
  import { useCoGuestState } from '../../states/CoGuestState';
201
130
  import { useLoginState } from '../../states/LoginState';
202
- import { useSeatStore } from '../../states/SeatStore';
131
+ import { useLiveSeatState } from '../../states/LiveSeatState';
203
132
  import { Avatar } from '../Avatar';
204
133
  import { ERROR_MESSAGE } from './constants';
205
134
 
206
135
  const { t } = useUIKit();
207
136
 
208
137
  const { loginUserInfo } = useLoginState();
209
- const { seatList } = useSeatStore();
210
138
 
211
139
  const {
212
- receivedCoGuestUserList,
213
- availableCoGuestUserList,
214
- sentCoGuestUserList,
215
- userListInCoGuest,
216
- sendCoGuestRequest,
217
- acceptCoGuestRequest,
218
- rejectCoGuestRequest,
219
- cancelCoGuestRequest,
220
- disconnect,
140
+ connected,
141
+ applicants,
142
+ acceptApplication,
143
+ rejectApplication,
221
144
  } = useCoGuestState();
222
145
 
146
+ const { kickUserOutOfSeat } = useLiveSeatState();
147
+
223
148
  const activeTab = ref('applications');
224
149
 
225
150
  const handleAcceptCoGuestRequest = async (userId: string) => {
226
151
  try {
227
- await acceptCoGuestRequest({ userId });
152
+ await acceptApplication({ userId });
228
153
  } catch (error: any) {
229
154
  const message = t(ERROR_MESSAGE[error.code as keyof typeof ERROR_MESSAGE] || 'Accept co-guest request failed');
230
155
  TUIToast.error({ message });
@@ -233,7 +158,7 @@ const handleAcceptCoGuestRequest = async (userId: string) => {
233
158
 
234
159
  const handleRejectCoGuestRequest = async (userId: string) => {
235
160
  try {
236
- await rejectCoGuestRequest({ userId });
161
+ await rejectApplication({ userId });
237
162
  } catch (error) {
238
163
  console.error('[CoGuestPanel] handleRejectCoGuestRequest error', error);
239
164
  TUIToast.error({
@@ -244,7 +169,7 @@ const handleRejectCoGuestRequest = async (userId: string) => {
244
169
 
245
170
  const handleDisconnect = async (userId: string) => {
246
171
  try {
247
- await disconnect(userId);
172
+ await kickUserOutOfSeat({ userId });
248
173
  } catch (error) {
249
174
  console.error('[CoGuestPanel] handleDisconnect error', error);
250
175
  TUIToast.error({
@@ -69,7 +69,7 @@
69
69
 
70
70
  <script setup lang="ts">
71
71
  import { ref, onMounted, onUnmounted } from 'vue';
72
- import { TUIConnectionCode, TUILiveBattleManagerEvents } from '@tencentcloud/tuiroom-engine-js';
72
+ import { TUIConnectionCode } from '@tencentcloud/tuiroom-engine-js';
73
73
  import { TUIButton, TUIToast, useUIKit, TOAST_TYPE, TUIDialog } from '@tencentcloud/uikit-base-component-vue3';
74
74
  import { useBattleState } from '../../states/BattleState';
75
75
  import { useCoHostState } from '../../states/CoHostState';
@@ -78,7 +78,6 @@ import { CoHostLayoutTemplate, CoHostEvent } from '../../types';
78
78
  import UserList from './UserList.vue';
79
79
  import RecommendHostList from './RecommendHostList.vue';
80
80
  import type { SeatUserInfo } from '../../types';
81
- import type { TUIBattleUser } from '@tencentcloud/tuiroom-engine-js';
82
81
 
83
82
  const { t } = useUIKit();
84
83
  const props = defineProps<{
@@ -98,8 +97,6 @@ const {
98
97
  battleUsers,
99
98
  requestBattle,
100
99
  exitBattle,
101
- subscribeEvent: subscribeBattleEvent,
102
- unsubscribeEvent: unsubscribeBattleEvent,
103
100
  } = useBattleState();
104
101
 
105
102
  const showExitCoHostDialog = ref(false);