tuikit-atomicx-vue3 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,8 +2,8 @@ import { defineComponent as b, ref as A, computed as j, watch as k, onMounted as
2
2
  import { useUIKit as F, IconPK as L, IconTime as I } from "@tencentcloud/uikit-base-component-vue3";
3
3
  import { useLiveSeatState as V } from "../../../states/LiveSeatState/index.js";
4
4
  import { convertSecondsToHMS as X } from "../../../utils/utils.js";
5
- import { useLiveListState as _ } from "../../../states/LiveListState/LiveListState.js";
6
- import { useBattleState as $ } from "../../../states/BattleState/BattleState.js";
5
+ import { useBattleState as _ } from "../../../states/BattleState/BattleState.js";
6
+ import { useLiveListState as $ } from "../../../states/LiveListState/LiveListState.js";
7
7
  import { CoHostLayoutTemplate as ee } from "../../../types/coHost.js";
8
8
  import { BattleEvent as T } from "../../../types/battle.js";
9
9
  import { _ as te } from "../../../_plugin-vue_export-helper-CHgC5LLL.js";
@@ -19,7 +19,7 @@ const oe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARwAAAD2CAYAAAAEXDiwAA
19
19
  }, de = { class: "battle-time-content" }, Ne = { class: "battle-time" }, re = ["src"], Ue = ["src"], le = ["src"], ie = ["src"], pe = ["src"], ke = /* @__PURE__ */ b({
20
20
  __name: "BattleDecorate",
21
21
  setup(Ge) {
22
- const { currentLive: m } = _(), { currentBattleInfo: D, battleUsers: O, battleScore: Q, subscribeEvent: J, unsubscribeEvent: H } = $(), { seatList: M } = V(), { t: v } = F(), d = A(!1), u = j(() => {
22
+ const { currentLive: m } = $(), { currentBattleInfo: D, battleUsers: O, battleScore: Q, subscribeEvent: J, unsubscribeEvent: H } = _(), { seatList: M } = V(), { t: v } = F(), d = A(!1), u = j(() => {
23
23
  var e, t;
24
24
  return ((e = m.value) == null ? void 0 : e.layoutTemplate) === ee.HostDynamicGrid && O.value.length === 2 && ((t = M.value) == null ? void 0 : t.filter((o) => o.userInfo).length) === 2;
25
25
  }), N = A(!1), r = A(!1);
@@ -27,3 +27,23 @@ export declare enum MetricsKey {
27
27
  T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT = 181502,
28
28
  T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT = 181503
29
29
  }
30
+ export declare enum AtomicMetrics {
31
+ LIVE_LIST_STORE = 1101,
32
+ LIVE_SEAT_STORE_LOAD = 1102,
33
+ LIVE_SEAT_STORE_ACTIVATE = 1103,
34
+ LIVE_AUDIENCE_STORE = 1104,
35
+ LIVE_CO_GUEST_STORE = 1105,
36
+ LIVE_CO_HOST_STORE = 1106,
37
+ LIVE_BATTLE_STORE_LOAD = 1107,
38
+ LIVE_BATTLE_STORE_ACTIVATE = 1108,
39
+ LIVE_BARRAGE_STORE_LOAD = 1109,
40
+ LIVE_BARRAGE_STORE_ACTIVATE = 1110,
41
+ LIVE_LIKE_STORE = 1111,
42
+ LIVE_GIFT_STORE = 1112,
43
+ DEVICE_STORE = 1113,
44
+ AUDIO_EFFECT_STORE = 1114,
45
+ BASE_BEAUTY_STORE = 1115,
46
+ LIVE_SUMMARY_STORE = 1116,
47
+ LIVE_VIDEO_MIXER_STORE = 1117,
48
+ LIVE_MONITOR_STORE = 1118
49
+ }
@@ -1,4 +1,5 @@
1
- var T = /* @__PURE__ */ ((_) => (_[_.T_METRICS_STATE_API_CREATE_LIVE_COUNT = 18e4] = "T_METRICS_STATE_API_CREATE_LIVE_COUNT", _[_.T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT = 180001] = "T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_COUNT = 180002] = "T_METRICS_STATE_API_JOIN_LIVE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT = 180003] = "T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LOGIN_COUNT = 180010] = "T_METRICS_STATE_API_LOGIN_COUNT", _[_.T_METRICS_STATE_API_LOGIN_MOBILE_COUNT = 180011] = "T_METRICS_STATE_API_LOGIN_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT = 180020] = "T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT = 180021] = "T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT = 180030] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT = 180031] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT", _[_.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT = 180040] = "T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT", _[_.T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT = 180050] = "T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT", _[_.T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT = 180060] = "T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT = 180070] = "T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_ASR_STATE_COUNT = 181e3] = "T_METRICS_STATE_ASR_STATE_COUNT", _[_.T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT = 181100] = "T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT = 181200] = "T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_STATE_COUNT = 181300] = "T_METRICS_STATE_ROOM_STATE_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_COUNT = 181301] = "T_METRICS_STATE_API_CREATE_ROOM_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT = 181302] = "T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_COUNT = 181303] = "T_METRICS_STATE_API_JOIN_ROOM_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT = 181304] = "T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT = 181400] = "T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT", _[_.T_METRICS_STATE_DEVICE_STATE_COUNT = 181500] = "T_METRICS_STATE_DEVICE_STATE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT = 181501] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT = 181502] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT", _[_.T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT = 181503] = "T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT", _))(T || {});
1
+ var T = /* @__PURE__ */ ((_) => (_[_.T_METRICS_STATE_API_CREATE_LIVE_COUNT = 18e4] = "T_METRICS_STATE_API_CREATE_LIVE_COUNT", _[_.T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT = 180001] = "T_METRICS_STATE_API_CREATE_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_COUNT = 180002] = "T_METRICS_STATE_API_JOIN_LIVE_COUNT", _[_.T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT = 180003] = "T_METRICS_STATE_API_JOIN_LIVE_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LOGIN_COUNT = 180010] = "T_METRICS_STATE_API_LOGIN_COUNT", _[_.T_METRICS_STATE_API_LOGIN_MOBILE_COUNT = 180011] = "T_METRICS_STATE_API_LOGIN_MOBILE_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT = 180020] = "T_METRICS_STATE_API_LIVE_MONITOR_CLOSE_ROOM_COUNT", _[_.T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT = 180021] = "T_METRICS_STATE_API_LIVE_MONITOR_START_PLAY_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT = 180030] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_CAMERA_COUNT", _[_.T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT = 180031] = "T_METRICS_STATE_API_VIDEO_MIXER_ADD_MEDIA_SCREEN_COUNT", _[_.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT = 180040] = "T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT", _[_.T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT = 180050] = "T_METRICS_STATE_API_AUDIENCE_FETCH_LIST_COUNT", _[_.T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT = 180060] = "T_METRICS_STATE_API_CO_GUEST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT = 180070] = "T_METRICS_STATE_API_CO_HOST_REQUEST_CONNECTION_COUNT", _[_.T_METRICS_STATE_ASR_STATE_COUNT = 181e3] = "T_METRICS_STATE_ASR_STATE_COUNT", _[_.T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT = 181100] = "T_METRICS_STATE_FREE_BEAUTY_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT = 181200] = "T_METRICS_STATE_ROOM_PARTICIPANT_STATE_COUNT", _[_.T_METRICS_STATE_ROOM_STATE_COUNT = 181300] = "T_METRICS_STATE_ROOM_STATE_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_COUNT = 181301] = "T_METRICS_STATE_API_CREATE_ROOM_COUNT", _[_.T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT = 181302] = "T_METRICS_STATE_API_CREATE_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_COUNT = 181303] = "T_METRICS_STATE_API_JOIN_ROOM_COUNT", _[_.T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT = 181304] = "T_METRICS_STATE_API_JOIN_ROOM_MOBILE_COUNT", _[_.T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT = 181400] = "T_METRICS_STATE_VIRTUAL_BACKGROUND_STATE_COUNT", _[_.T_METRICS_STATE_DEVICE_STATE_COUNT = 181500] = "T_METRICS_STATE_DEVICE_STATE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT = 181501] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_MICROPHONE_COUNT", _[_.T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT = 181502] = "T_METRICS_STATE_API_DEVICE_OPEN_LOCAL_CAMERA_COUNT", _[_.T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT = 181503] = "T_METRICS_STATE_API_DEVICE_START_SCREEN_SHARE_COUNT", _))(T || {}), E = /* @__PURE__ */ ((_) => (_[_.LIVE_LIST_STORE = 1101] = "LIVE_LIST_STORE", _[_.LIVE_SEAT_STORE_LOAD = 1102] = "LIVE_SEAT_STORE_LOAD", _[_.LIVE_SEAT_STORE_ACTIVATE = 1103] = "LIVE_SEAT_STORE_ACTIVATE", _[_.LIVE_AUDIENCE_STORE = 1104] = "LIVE_AUDIENCE_STORE", _[_.LIVE_CO_GUEST_STORE = 1105] = "LIVE_CO_GUEST_STORE", _[_.LIVE_CO_HOST_STORE = 1106] = "LIVE_CO_HOST_STORE", _[_.LIVE_BATTLE_STORE_LOAD = 1107] = "LIVE_BATTLE_STORE_LOAD", _[_.LIVE_BATTLE_STORE_ACTIVATE = 1108] = "LIVE_BATTLE_STORE_ACTIVATE", _[_.LIVE_BARRAGE_STORE_LOAD = 1109] = "LIVE_BARRAGE_STORE_LOAD", _[_.LIVE_BARRAGE_STORE_ACTIVATE = 1110] = "LIVE_BARRAGE_STORE_ACTIVATE", _[_.LIVE_LIKE_STORE = 1111] = "LIVE_LIKE_STORE", _[_.LIVE_GIFT_STORE = 1112] = "LIVE_GIFT_STORE", _[_.DEVICE_STORE = 1113] = "DEVICE_STORE", _[_.AUDIO_EFFECT_STORE = 1114] = "AUDIO_EFFECT_STORE", _[_.BASE_BEAUTY_STORE = 1115] = "BASE_BEAUTY_STORE", _[_.LIVE_SUMMARY_STORE = 1116] = "LIVE_SUMMARY_STORE", _[_.LIVE_VIDEO_MIXER_STORE = 1117] = "LIVE_VIDEO_MIXER_STORE", _[_.LIVE_MONITOR_STORE = 1118] = "LIVE_MONITOR_STORE", _))(E || {});
2
2
  export {
3
+ E as AtomicMetrics,
3
4
  T as MetricsKey
4
5
  };
@@ -1,12 +1,14 @@
1
- import { MetricsKey } from './MetricsKey';
1
+ import { MetricsKey, AtomicMetrics } from './MetricsKey';
2
2
 
3
3
  export declare class DataReport {
4
4
  private taskQueue;
5
5
  private isReady;
6
6
  constructor();
7
7
  reportCount(key: MetricsKey): void;
8
+ reportAtomicMetrics(metric: AtomicMetrics): void;
8
9
  private bindEvent;
9
10
  private executePendingTasks;
10
11
  private createReportCountTask;
12
+ private createAtomicReportTask;
11
13
  }
12
14
  export declare const dataReport: DataReport;
@@ -1,20 +1,28 @@
1
- var o = Object.defineProperty;
2
- var n = (s, e, t) => e in s ? o(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var a = (s, e, t) => n(s, typeof e != "symbol" ? e + "" : e, t);
1
+ var n = Object.defineProperty;
2
+ var i = (a, t, e) => t in a ? n(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
3
+ var s = (a, t, e) => i(a, typeof t != "symbol" ? t + "" : t, e);
4
4
  import r from "@tencentcloud/tuiroom-engine-js";
5
- const i = "KeyMetricsStats";
6
- class c {
5
+ const c = "KeyMetricsStats";
6
+ class u {
7
7
  constructor() {
8
- a(this, "taskQueue", []);
9
- a(this, "isReady", !1);
8
+ s(this, "taskQueue", []);
9
+ s(this, "isReady", !1);
10
10
  this.bindEvent();
11
11
  }
12
- reportCount(e) {
12
+ reportCount(t) {
13
13
  try {
14
- const t = this.createReportCountTask(e);
15
- this.isReady ? t() : this.taskQueue.push(t);
16
- } catch (t) {
17
- console.warn("Report count failed:", t);
14
+ const e = this.createReportCountTask(t);
15
+ this.isReady ? e() : this.taskQueue.push(e);
16
+ } catch (e) {
17
+ console.warn("Report count failed:", e);
18
+ }
19
+ }
20
+ reportAtomicMetrics(t) {
21
+ try {
22
+ const e = this.createAtomicReportTask(t);
23
+ this.isReady ? e() : this.taskQueue.push(e);
24
+ } catch (e) {
25
+ console.warn("Report atomic metrics failed:", e);
18
26
  }
19
27
  }
20
28
  bindEvent() {
@@ -23,27 +31,45 @@ class c {
23
31
  });
24
32
  }
25
33
  executePendingTasks() {
26
- this.taskQueue.forEach((e) => {
34
+ this.taskQueue.forEach((t) => {
27
35
  try {
28
- e();
29
- } catch (t) {
30
- console.warn("Task execution failed:", t);
36
+ t();
37
+ } catch (e) {
38
+ console.warn("Task execution failed:", e);
31
39
  }
32
40
  }), this.taskQueue = [];
33
41
  }
34
- createReportCountTask(e) {
42
+ createReportCountTask(t) {
35
43
  return () => {
36
44
  r.callExperimentalAPI(
37
45
  JSON.stringify({
38
- api: i,
39
- params: { key: e }
46
+ api: c,
47
+ params: { key: t }
40
48
  })
41
49
  );
42
50
  };
43
51
  }
52
+ createAtomicReportTask(t) {
53
+ return () => {
54
+ const e = r.getInstance();
55
+ if (!e) {
56
+ console.warn("TUIRoomEngine instance is not available");
57
+ return;
58
+ }
59
+ const o = e.getTIM();
60
+ if (!o) {
61
+ console.warn("TIM instance is not available");
62
+ return;
63
+ }
64
+ o.callExperimentalAPI("reportTUIFeatureUsage", {
65
+ atomicStoreID: t,
66
+ uiPlatform: 50
67
+ });
68
+ };
69
+ }
44
70
  }
45
- const p = new c();
71
+ const h = new u();
46
72
  export {
47
- c as DataReport,
48
- p as dataReport
73
+ u as DataReport,
74
+ h as dataReport
49
75
  };
@@ -1,4 +1,4 @@
1
1
  import { dataReport } from './dataReport';
2
- import { MetricsKey } from './MetricsKey';
2
+ import { MetricsKey, AtomicMetrics } from './MetricsKey';
3
3
 
4
- export { dataReport, MetricsKey, };
4
+ export { dataReport, MetricsKey, AtomicMetrics, };
@@ -1,6 +1,7 @@
1
- import { dataReport as o } from "./dataReport.js";
2
- import { MetricsKey as p } from "./MetricsKey.js";
1
+ import { dataReport as e } from "./dataReport.js";
2
+ import { AtomicMetrics as c, MetricsKey as i } from "./MetricsKey.js";
3
3
  export {
4
- p as MetricsKey,
5
- o as dataReport
4
+ c as AtomicMetrics,
5
+ i as MetricsKey,
6
+ e as dataReport
6
7
  };
@@ -1,70 +1,5 @@
1
1
  import { BarrageType, Barrage } from '../../types/barrage';
2
2
 
3
- /**
4
- * 弹幕状态管理组合式函数
5
- * @memberof module:BarrageState
6
- * @description 提供弹幕功能的所有状态和操作方法,包括消息发送、接收和管理
7
- * @returns {Object} 弹幕状态管理对象
8
- * @returns {Ref<Barrage[]>} returns.messageList - 弹幕消息列表
9
- * @returns {Function} returns.sendTextMessage - 发送文本弹幕消息
10
- * @returns {Function} returns.sendCustomMessage - 发送自定义弹幕消息
11
- * @returns {Function} returns.appendLocalTip - 添加本地提示消息
12
- * @example
13
- * ```typescript
14
- * import { useBarrageState, BarrageType } from '@/states/BarrageState';
15
- *
16
- * // 在Vue组件中使用
17
- * export default {
18
- * setup() {
19
- * const {
20
- * messageList,
21
- * sendTextMessage,
22
- * sendCustomMessage,
23
- * appendLocalTip
24
- * } = useBarrageState();
25
- *
26
- * // 发送文本消息
27
- * const handleSendText = async (text: string) => {
28
- * try {
29
- * await sendTextMessage({ text });
30
- * console.log('消息发送成功');
31
- * } catch (error) {
32
- * console.error('消息发送失败:', error);
33
- * }
34
- * };
35
- *
36
- * // 发送礼物消息
37
- * const handleSendGift = async (giftId: number, count: number) => {
38
- * await sendCustomMessage({
39
- * businessId: 'gift',
40
- * data: JSON.stringify({ giftId, count })
41
- * });
42
- * };
43
- *
44
- * // 监听消息列表变化
45
- * watch(messageList, (messages) => {
46
- * console.log('当前消息数量:', messages.length);
47
- *
48
- * // 处理最新消息
49
- * const latestMessage = messages[messages.length - 1];
50
- * if (latestMessage) {
51
- * if (latestMessage.messageType === BarrageType.text) {
52
- * console.log('新文本消息:', latestMessage.textContent);
53
- * } else if (latestMessage.messageType === BarrageType.custom) {
54
- * console.log('新自定义消息:', latestMessage.businessId);
55
- * }
56
- * }
57
- * });
58
- *
59
- * return {
60
- * messageList,
61
- * handleSendText,
62
- * handleSendGift
63
- * };
64
- * }
65
- * };
66
- * ```
67
- */
68
3
  export declare function useBarrageState(): {
69
4
  messageList: import('vue').Ref<{
70
5
  messageType: BarrageType;
@@ -1,78 +1,79 @@
1
- import { ref as d, watch as m } from "vue";
2
- import v, { TUIRoomEvents as i } from "@tencentcloud/tuiroom-engine-js";
3
- import { useRoomEngine as I } from "../../hooks/useRoomEngine.js";
4
- import { dataReport as l } from "../../report/dataReport.js";
5
- import { MetricsKey as f } from "../../report/MetricsKey.js";
6
- import { BarrageType as c } from "../../types/barrage.js";
7
- import { useLoginState as p } from "../LoginState.js";
8
- import { useLiveListState as T } from "../LiveListState/LiveListState.js";
9
- const { loginUserInfo: s } = p(), u = I(), { currentLive: x } = T(), o = d([]), E = (e) => {
1
+ import { ref as I, watch as l } from "vue";
2
+ import T, { TUIRoomEvents as m } from "@tencentcloud/tuiroom-engine-js";
3
+ import { useRoomEngine as p } from "../../hooks/useRoomEngine.js";
4
+ import { dataReport as i } from "../../report/dataReport.js";
5
+ import { AtomicMetrics as u, MetricsKey as E } from "../../report/MetricsKey.js";
6
+ import { BarrageType as v } from "../../types/barrage.js";
7
+ import { useLoginState as f } from "../LoginState.js";
8
+ import { useLiveListState as R } from "../LiveListState/LiveListState.js";
9
+ const { loginUserInfo: r } = f(), c = p(), { currentLive: A } = R(), a = I([]), _ = (e) => {
10
10
  var n;
11
- const t = f.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT;
12
- return l.reportCount(t), (n = u.instance) == null ? void 0 : n.sendTextMessage({
11
+ const t = E.T_METRICS_STATE_API_BARRAGE_SEND_TEXT_MSG_COUNT;
12
+ return i.reportCount(t), i.reportAtomicMetrics(u.LIVE_BARRAGE_STORE_ACTIVATE), (n = c.instance) == null ? void 0 : n.sendTextMessage({
13
13
  textContent: e.text,
14
14
  extensionInfo: (e == null ? void 0 : e.extensionInfo) || {}
15
15
  });
16
16
  }, M = (e) => {
17
17
  var t;
18
- return (t = u.instance) == null ? void 0 : t.sendCustomMessage({
18
+ return i.reportAtomicMetrics(u.LIVE_BARRAGE_STORE_ACTIVATE), (t = c.instance) == null ? void 0 : t.sendCustomMessage({
19
19
  businessId: e.businessId,
20
20
  data: e.data
21
21
  });
22
- }, R = (e) => {
23
- o.value.push(e);
22
+ }, x = (e) => {
23
+ a.value.push(e);
24
24
  }, S = (e) => {
25
- var n, r, a;
25
+ var n, s, o;
26
26
  const t = { ...e.sender };
27
- t.userId === ((n = s.value) == null ? void 0 : n.userId) && (t.userName = t.userName || ((r = s.value) == null ? void 0 : r.userName), t.avatarUrl = t.avatarUrl || ((a = s.value) == null ? void 0 : a.avatarUrl)), o.value.push({
27
+ t.userId === ((n = r.value) == null ? void 0 : n.userId) && (t.userName = t.userName || ((s = r.value) == null ? void 0 : s.userName), t.avatarUrl = t.avatarUrl || ((o = r.value) == null ? void 0 : o.avatarUrl)), a.value.push({
28
28
  liveId: e.roomId,
29
29
  sender: t,
30
30
  sequence: e.sequence,
31
31
  timestampInSecond: e.timestampInSecond,
32
- messageType: c.text,
32
+ messageType: v.text,
33
33
  textContent: e.textContent,
34
34
  extensionInfo: e.extensionInfo
35
35
  });
36
36
  }, C = (e) => {
37
- var n, r, a;
37
+ var n, s, o;
38
38
  const t = { ...e.sender };
39
- t.userId === ((n = s.value) == null ? void 0 : n.userId) && (t.userName = t.userName || ((r = s.value) == null ? void 0 : r.userName), t.avatarUrl = t.avatarUrl || ((a = s.value) == null ? void 0 : a.avatarUrl)), o.value.push({
39
+ t.userId === ((n = r.value) == null ? void 0 : n.userId) && (t.userName = t.userName || ((s = r.value) == null ? void 0 : s.userName), t.avatarUrl = t.avatarUrl || ((o = r.value) == null ? void 0 : o.avatarUrl)), a.value.push({
40
40
  liveId: e.roomId,
41
41
  sender: t,
42
42
  sequence: e.sequence,
43
43
  timestampInSecond: e.timestampInSecond,
44
- messageType: c.custom,
44
+ messageType: v.custom,
45
45
  businessId: e.businessId,
46
46
  data: e.data
47
47
  });
48
- }, U = [
49
- { event: i.onReceiveTextMessage, handler: S },
50
- { event: i.onReceiveCustomMessage, handler: C }
51
- ], g = () => {
52
- U.forEach(({ event: e, handler: t }) => {
48
+ }, L = [
49
+ { event: m.onReceiveTextMessage, handler: S },
50
+ { event: m.onReceiveCustomMessage, handler: C }
51
+ ], U = () => {
52
+ L.forEach(({ event: e, handler: t }) => {
53
53
  var n;
54
- (n = u.instance) == null || n.on(e, t);
54
+ (n = c.instance) == null || n.on(e, t);
55
55
  });
56
- }, N = () => {
57
- o.value = [];
56
+ }, g = () => {
57
+ a.value = [];
58
58
  };
59
- m(() => {
59
+ l(() => {
60
60
  var e;
61
- return (e = x.value) == null ? void 0 : e.liveId;
61
+ return (e = A.value) == null ? void 0 : e.liveId;
62
62
  }, (e) => {
63
- e || N();
63
+ e || g();
64
64
  });
65
- v.once("ready", () => {
66
- g();
65
+ T.once("ready", () => {
66
+ U();
67
67
  });
68
- function G() {
69
- return {
70
- messageList: o,
71
- sendTextMessage: E,
68
+ let d = !1;
69
+ function q() {
70
+ return d || (i.reportAtomicMetrics(u.LIVE_BARRAGE_STORE_LOAD), d = !0), {
71
+ messageList: a,
72
+ sendTextMessage: _,
72
73
  sendCustomMessage: M,
73
- appendLocalTip: R
74
+ appendLocalTip: x
74
75
  };
75
76
  }
76
77
  export {
77
- G as useBarrageState
78
+ q as useBarrageState
78
79
  };
@@ -1,101 +1,5 @@
1
1
  import { BattleEvent, DeviceStatus, BattleConfig, BattleInfo, SeatUserInfo } from '../../types';
2
2
 
3
- /**
4
- * PK状态管理组合式函数
5
- * @memberof module:BattleState
6
- * @description 提供直播PK功能的所有状态和操作方法,包括PK邀请、接受、拒绝、退出以及事件监听
7
- * @returns {Object} PK状态管理对象
8
- * @returns {Ref<BattleInfo | undefined>} returns.currentBattleInfo - 当前PK信息
9
- * @returns {Ref<SeatUserInfo[]>} returns.battleUsers - PK参与用户列表
10
- * @returns {Ref<Map<string, number>>} returns.battleScore - PK积分映射
11
- * @returns {Function} returns.subscribeEvent - 订阅PK事件
12
- * @returns {Function} returns.unsubscribeEvent - 取消订阅PK事件
13
- * @returns {Function} returns.requestBattle - 发起PK邀请
14
- * @returns {Function} returns.cancelBattleRequest - 取消PK邀请
15
- * @returns {Function} returns.acceptBattle - 接受PK邀请
16
- * @returns {Function} returns.rejectBattle - 拒绝PK邀请
17
- * @returns {Function} returns.exitBattle - 退出PK
18
- * @example
19
- * ```typescript
20
- * import { useBattleState, BattleEvent } from '@/states/BattleState';
21
- *
22
- * // 在Vue组件中使用
23
- * export default {
24
- * setup() {
25
- * const {
26
- * currentBattleInfo,
27
- * battleUsers,
28
- * battleScore,
29
- * subscribeEvent,
30
- * unsubscribeEvent,
31
- * requestBattle,
32
- * acceptBattle,
33
- * rejectBattle,
34
- * exitBattle
35
- * } = useBattleState();
36
- *
37
- * // 监听PK事件
38
- * const handleBattleEvents = () => {
39
- * // PK开始事件
40
- * subscribeEvent(BattleEvent.onBattleStarted, (eventInfo) => {
41
- * console.log('PK开始:', eventInfo.battleInfo);
42
- * console.log('参与者:', eventInfo.inviter, eventInfo.invitees);
43
- * });
44
- *
45
- * // PK结束事件
46
- * subscribeEvent(BattleEvent.onBattleEnded, (eventInfo) => {
47
- * console.log('PK结束:', eventInfo.reason);
48
- * });
49
- *
50
- * // 积分变化事件
51
- * subscribeEvent(BattleEvent.onBattleScoreChanged, (eventInfo) => {
52
- * console.log('积分更新:', battleScore.value);
53
- * });
54
- * };
55
- *
56
- * // 发起PK
57
- * const startBattle = async (targetUserId: string) => {
58
- * try {
59
- * await requestBattle({
60
- * config: {
61
- * duration: 300, // 5分钟
62
- * needResponse: true,
63
- * extensionInfo: { type: 'singing' }
64
- * },
65
- * userIdList: [targetUserId],
66
- * timeout: 30
67
- * });
68
- * } catch (error) {
69
- * console.error('发起PK失败:', error);
70
- * }
71
- * };
72
- *
73
- * // 处理PK邀请
74
- * subscribeEvent(BattleEvent.onBattleRequestReceived, async (eventInfo) => {
75
- * const { battleId, inviter } = eventInfo;
76
- * const shouldAccept = confirm(`是否接受来自 ${inviter.userName} 的PK邀请?`);
77
- *
78
- * if (shouldAccept) {
79
- * await acceptBattle({ battleId });
80
- * } else {
81
- * await rejectBattle({ battleId });
82
- * }
83
- * });
84
- *
85
- * onMounted(() => {
86
- * handleBattleEvents();
87
- * });
88
- *
89
- * return {
90
- * currentBattleInfo,
91
- * battleUsers,
92
- * battleScore,
93
- * startBattle
94
- * };
95
- * }
96
- * };
97
- * ```
98
- */
99
3
  export declare function useBattleState(): {
100
4
  currentBattleInfo: import('vue').Ref<BattleInfo | undefined, BattleInfo | undefined>;
101
5
  battleUsers: import('vue').Ref<{