@tencentcloud/roomkit-electron-vue3 2.4.0 → 2.4.2

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 (54) hide show
  1. package/es/components/Chat/ChatEditor/index.vue.mjs +1 -1
  2. package/es/components/Chat/ChatEditor/index.vue2.mjs +4 -4
  3. package/es/components/Chat/ChatEditor/useChatEditor.d.ts +1 -2
  4. package/es/components/Chat/ChatEditor/useChatEditor.mjs +4 -12
  5. package/es/components/ManageMember/MemberControl/useMemberControlHooks.mjs +16 -8
  6. package/es/components/RoomFooter/EndControl/useEndControlHooks.mjs +1 -1
  7. package/es/conference.mjs +9 -0
  8. package/es/conference.vue.mjs +1 -1
  9. package/es/extension/chatExtension.mjs +3 -1
  10. package/es/index.d.ts +2 -2
  11. package/es/index.mjs +1399 -1393
  12. package/es/locales/en-US.d.ts +1 -2
  13. package/es/locales/en-US.mjs +2 -3
  14. package/es/locales/zh-CN.d.ts +1 -2
  15. package/es/locales/zh-CN.mjs +2 -3
  16. package/es/services/roomService.d.ts +0 -2
  17. package/es/services/roomService.mjs +2 -26
  18. package/es/stores/chat.mjs +3 -3
  19. package/es/stores/room.d.ts +1 -1
  20. package/es/stores/room.mjs +2 -9
  21. package/lib/components/Chat/ChatEditor/index.vue.js +1 -1
  22. package/lib/components/Chat/ChatEditor/index.vue2.js +4 -4
  23. package/lib/components/Chat/ChatEditor/useChatEditor.d.ts +1 -2
  24. package/lib/components/Chat/ChatEditor/useChatEditor.js +3 -11
  25. package/lib/components/ManageMember/MemberControl/useMemberControlHooks.js +16 -8
  26. package/lib/components/RoomFooter/EndControl/useEndControlHooks.js +1 -1
  27. package/lib/conference.js +9 -0
  28. package/lib/conference.vue.js +1 -1
  29. package/lib/extension/chatExtension.js +3 -1
  30. package/lib/index.d.ts +2 -2
  31. package/lib/index.js +1398 -1392
  32. package/lib/locales/en-US.d.ts +1 -2
  33. package/lib/locales/en-US.js +2 -3
  34. package/lib/locales/zh-CN.d.ts +1 -2
  35. package/lib/locales/zh-CN.js +2 -3
  36. package/lib/services/roomService.d.ts +0 -2
  37. package/lib/services/roomService.js +2 -26
  38. package/lib/stores/chat.js +3 -3
  39. package/lib/stores/room.d.ts +1 -1
  40. package/lib/stores/room.js +2 -9
  41. package/package.json +2 -2
  42. package/src/TUIRoom/components/Chat/ChatEditor/index.vue +4 -4
  43. package/src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts +4 -13
  44. package/src/TUIRoom/components/ManageMember/MemberControl/useMemberControlHooks.ts +16 -8
  45. package/src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts +1 -1
  46. package/src/TUIRoom/conference.vue +2 -0
  47. package/src/TUIRoom/extension/RoomMessageCard/roomMessageCard.scss +3 -0
  48. package/src/TUIRoom/extension/chatExtension.ts +2 -0
  49. package/src/TUIRoom/index.ts +11 -3
  50. package/src/TUIRoom/locales/en-US.ts +1 -2
  51. package/src/TUIRoom/locales/zh-CN.ts +1 -2
  52. package/src/TUIRoom/services/roomService.ts +0 -29
  53. package/src/TUIRoom/stores/chat.ts +5 -6
  54. package/src/TUIRoom/stores/room.ts +4 -11
@@ -212,8 +212,6 @@ declare const _default: {
212
212
  }) => string;
213
213
  'All videos disabled': string;
214
214
  'All videos enabled': string;
215
- 'Disabling text chat for all is enabled': string;
216
- 'Unblocked all text chat': string;
217
215
  'Your camera has been turned off': string;
218
216
  'Sb invites you to turn on the camera': ({ named }: {
219
217
  named: any;
@@ -321,5 +319,6 @@ declare const _default: {
321
319
  'Currently in a meeting, please exit the current meeting before proceeding.': string;
322
320
  'Failed to initiate meeting': string;
323
321
  'Failed to enter the meeting': string;
322
+ 'Failed to disable chat': string;
324
323
  };
325
324
  export default _default;
@@ -210,8 +210,6 @@ const EN = {
210
210
  "Sb invites you to turn on the microphone": ({ named }) => `${named("role")} invites you to turn on the microphone`,
211
211
  "All videos disabled": "All videos disabled",
212
212
  "All videos enabled": "All videos enabled",
213
- "Disabling text chat for all is enabled": "Disabling text chat for all is enabled",
214
- "Unblocked all text chat": "Unblocked all text chat",
215
213
  "Your camera has been turned off": "Your camera has been turned off",
216
214
  // @ts-ignore
217
215
  "Sb invites you to turn on the camera": ({ named }) => `${named("role")} invites you to turn on the camera`,
@@ -308,6 +306,7 @@ const EN = {
308
306
  "The meeting has ended": "The meeting has ended",
309
307
  "Currently in a meeting, please exit the current meeting before proceeding.": "Currently in a meeting, please exit the current meeting before proceeding.",
310
308
  "Failed to initiate meeting": "Failed to initiate meeting",
311
- "Failed to enter the meeting": "Failed to enter the meeting"
309
+ "Failed to enter the meeting": "Failed to enter the meeting",
310
+ "Failed to disable chat": "Failed to disable chat"
312
311
  };
313
312
  exports.default = EN;
@@ -212,8 +212,6 @@ declare const _default: {
212
212
  }) => string;
213
213
  'All videos disabled': string;
214
214
  'All videos enabled': string;
215
- 'Disabling text chat for all is enabled': string;
216
- 'Unblocked all text chat': string;
217
215
  'Your camera has been turned off': string;
218
216
  'Sb invites you to turn on the camera': ({ named }: {
219
217
  named: any;
@@ -321,5 +319,6 @@ declare const _default: {
321
319
  'Currently in a meeting, please exit the current meeting before proceeding.': string;
322
320
  'Failed to initiate meeting': string;
323
321
  'Failed to enter the meeting': string;
322
+ 'Failed to disable chat': string;
324
323
  };
325
324
  export default _default;
@@ -210,8 +210,6 @@ const ZH = {
210
210
  "Sb invites you to turn on the microphone": ({ named }) => `${named("role")}邀请你打开麦克风`,
211
211
  "All videos disabled": "已开启全体禁画",
212
212
  "All videos enabled": "已解除全体禁画",
213
- "Disabling text chat for all is enabled": "已开启全体禁止文字聊天",
214
- "Unblocked all text chat": "已解除全体禁止文字聊天",
215
213
  "Your camera has been turned off": "已关闭您的摄像头",
216
214
  // @ts-ignore
217
215
  "Sb invites you to turn on the camera": ({ named }) => `${named("role")}邀请你打开摄像头`,
@@ -308,6 +306,7 @@ const ZH = {
308
306
  "The meeting has ended": "会议已结束",
309
307
  "Currently in a meeting, please exit the current meeting before proceeding.": "正在会议中,请先退出当前会议后再进行操作",
310
308
  "Failed to initiate meeting": "发起会议失败",
311
- "Failed to enter the meeting": "进入会议失败"
309
+ "Failed to enter the meeting": "进入会议失败",
310
+ "Failed to disable chat": "禁言失败"
312
311
  };
313
312
  exports.default = ZH;
@@ -44,8 +44,6 @@ export declare class RoomService implements IRoomService {
44
44
  private onAllUserCameraDisableChanged;
45
45
  private handleVideoStateChange;
46
46
  private onAllUserMicrophoneDisableChanged;
47
- private onSendMessageForAllUserDisableChanged;
48
- private handleMessageStateChange;
49
47
  private handleAudioStateChange;
50
48
  resetStore(): void;
51
49
  private storeInit;
@@ -67,7 +67,6 @@ const _RoomService = class _RoomService {
67
67
  this.onKickedOffLine = this.onKickedOffLine.bind(this);
68
68
  this.onAllUserCameraDisableChanged = this.onAllUserCameraDisableChanged.bind(this);
69
69
  this.onAllUserMicrophoneDisableChanged = this.onAllUserMicrophoneDisableChanged.bind(this);
70
- this.onSendMessageForAllUserDisableChanged = this.onSendMessageForAllUserDisableChanged.bind(this);
71
70
  }
72
71
  static getInstance() {
73
72
  if (!_RoomService.instance) {
@@ -94,7 +93,7 @@ const _RoomService = class _RoomService {
94
93
  useDeviceManager.default({ listenForDeviceChange: true });
95
94
  }
96
95
  bindRoomEngineEvents() {
97
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
96
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
98
97
  (_a = roomEngine.instance) == null ? void 0 : _a.on(TUIRoomEngine.TUIRoomEvents.onError, this.onError);
99
98
  (_b = roomEngine.instance) == null ? void 0 : _b.on(TUIRoomEngine.TUIRoomEvents.onRoomDismissed, this.onRoomDismissed);
100
99
  (_c = roomEngine.instance) == null ? void 0 : _c.on(TUIRoomEngine.TUIRoomEvents.onUserVoiceVolumeChanged, this.onUserVoiceVolumeChanged);
@@ -108,13 +107,9 @@ const _RoomService = class _RoomService {
108
107
  (_h = roomEngine.instance) == null ? void 0 : _h.on(TUIRoomEngine.TUIRoomEvents.onKickedOffLine, this.onKickedOffLine);
109
108
  (_i = roomEngine.instance) == null ? void 0 : _i.on(TUIRoomEngine.TUIRoomEvents.onAllUserCameraDisableChanged, this.onAllUserCameraDisableChanged);
110
109
  (_j = roomEngine.instance) == null ? void 0 : _j.on(TUIRoomEngine.TUIRoomEvents.onAllUserMicrophoneDisableChanged, this.onAllUserMicrophoneDisableChanged);
111
- (_k = roomEngine.instance) == null ? void 0 : _k.on(
112
- TUIRoomEngine.TUIRoomEvents.onSendMessageForAllUserDisableChanged,
113
- this.onSendMessageForAllUserDisableChanged
114
- );
115
110
  }
116
111
  unBindRoomEngineEvents() {
117
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
112
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
118
113
  (_a = roomEngine.instance) == null ? void 0 : _a.off(TUIRoomEngine.TUIRoomEvents.onError, this.onError);
119
114
  (_b = roomEngine.instance) == null ? void 0 : _b.off(TUIRoomEngine.TUIRoomEvents.onRoomDismissed, this.onRoomDismissed);
120
115
  (_c = roomEngine.instance) == null ? void 0 : _c.off(TUIRoomEngine.TUIRoomEvents.onUserVoiceVolumeChanged, this.onUserVoiceVolumeChanged);
@@ -125,10 +120,6 @@ const _RoomService = class _RoomService {
125
120
  (_h = roomEngine.instance) == null ? void 0 : _h.off(TUIRoomEngine.TUIRoomEvents.onKickedOffLine, this.onKickedOffLine);
126
121
  (_i = roomEngine.instance) == null ? void 0 : _i.off(TUIRoomEngine.TUIRoomEvents.onAllUserCameraDisableChanged, this.onAllUserCameraDisableChanged);
127
122
  (_j = roomEngine.instance) == null ? void 0 : _j.off(TUIRoomEngine.TUIRoomEvents.onAllUserMicrophoneDisableChanged, this.onAllUserMicrophoneDisableChanged);
128
- (_k = roomEngine.instance) == null ? void 0 : _k.off(
129
- TUIRoomEngine.TUIRoomEvents.onSendMessageForAllUserDisableChanged,
130
- this.onSendMessageForAllUserDisableChanged
131
- );
132
123
  }
133
124
  onError(error) {
134
125
  index$1.default.error("roomEngine.onError: ", error);
@@ -254,21 +245,6 @@ const _RoomService = class _RoomService {
254
245
  this.handleAudioStateChange(isDisable);
255
246
  this.roomStore.setDisableMicrophoneForAllUserByAdmin(isDisable);
256
247
  }
257
- async onSendMessageForAllUserDisableChanged(eventInfo) {
258
- const { isDisable } = eventInfo;
259
- if (isDisable !== this.roomStore.isMessageDisableForAllUser && this.roomStore.localUser.userRole === TUIRoomEngine.TUIRole.kGeneralUser) {
260
- this.handleMessageStateChange(isDisable);
261
- }
262
- this.roomStore.setDisableMessageAllUserByAdmin(isDisable);
263
- }
264
- async handleMessageStateChange(isDisableMessage) {
265
- const tipMessage = isDisableMessage ? t("Disabling text chat for all is enabled") : t("Unblocked all text chat");
266
- this.emit(types.EventType.ROOM_NOTICE_MESSAGE, {
267
- type: "success",
268
- message: tipMessage,
269
- duration: message.MESSAGE_DURATION.NORMAL
270
- });
271
- }
272
248
  async handleAudioStateChange(isDisableAudio) {
273
249
  var _a;
274
250
  const tipMessage = isDisableAudio ? t("All audios disabled") : t("All audios enabled");
@@ -4,7 +4,7 @@ const pinia = require("pinia");
4
4
  const useChatStore = pinia.defineStore("chat", {
5
5
  state: () => ({
6
6
  messageList: [],
7
- isMessageDisableByAdmin: false,
7
+ isMessageDisabled: false,
8
8
  unReadCount: 0,
9
9
  isCompleted: false,
10
10
  nextReqMessageId: ""
@@ -31,12 +31,12 @@ const useChatStore = pinia.defineStore("chat", {
31
31
  this.messageList = filteredMessageList.concat(this.messageList).sort((messageA, messageB) => messageA.sequence - messageB.sequence);
32
32
  },
33
33
  setSendMessageDisableChanged(isDisable) {
34
- this.isMessageDisableByAdmin = isDisable;
34
+ this.isMessageDisabled = isDisable;
35
35
  },
36
36
  reset() {
37
37
  this.messageList = [];
38
38
  this.unReadCount = 0;
39
- this.isMessageDisableByAdmin = false;
39
+ this.isMessageDisabled = false;
40
40
  }
41
41
  }
42
42
  });
@@ -19,9 +19,9 @@ export type UserInfo = {
19
19
  hasScreenStream?: boolean;
20
20
  isVideoVisible?: boolean;
21
21
  isScreenVisible?: boolean;
22
+ isMessageDisabled?: boolean;
22
23
  userRole?: TUIRole;
23
24
  onSeat?: boolean;
24
- isChatMutedByMasterOrAdmin?: boolean;
25
25
  isRequestingUserOpenMic?: boolean;
26
26
  requestUserOpenMicRequestId?: string;
27
27
  isRequestingUserOpenCamera?: boolean;
@@ -52,7 +52,6 @@ const useRoomStore = pinia.defineStore("room", {
52
52
  masterUserId: "",
53
53
  isMicrophoneDisableForAllUser: false,
54
54
  isCameraDisableForAllUser: false,
55
- isMessageDisableForAllUser: false,
56
55
  isSeatEnabled: false,
57
56
  seatMode: TUIRoomEngine.TUISeatMode.kFreeToTake,
58
57
  maxMembersCount: 5,
@@ -202,9 +201,9 @@ const useRoomStore = pinia.defineStore("room", {
202
201
  hasScreenStream: false,
203
202
  isVideoVisible: false,
204
203
  isScreenVisible: false,
204
+ isMessageDisabled: false,
205
205
  userRole: TUIRoomEngine.TUIRole.kGeneralUser,
206
206
  onSeat: !this.isSpeakAfterTakingSeatMode,
207
- isChatMutedByMasterOrAdmin: false,
208
207
  isUserApplyingToAnchor: false,
209
208
  isInvitingUserToAnchor: false,
210
209
  cameraStreamInfo: {
@@ -427,7 +426,6 @@ const useRoomStore = pinia.defineStore("room", {
427
426
  roomOwner,
428
427
  isMicrophoneDisableForAllUser,
429
428
  isCameraDisableForAllUser,
430
- isMessageDisableForAllUser,
431
429
  isSeatEnabled,
432
430
  seatMode,
433
431
  maxSeatCount,
@@ -439,7 +437,6 @@ const useRoomStore = pinia.defineStore("room", {
439
437
  this.masterUserId = roomOwner;
440
438
  this.isMicrophoneDisableForAllUser = isMicrophoneDisableForAllUser;
441
439
  this.isCameraDisableForAllUser = isCameraDisableForAllUser;
442
- this.isMessageDisableForAllUser = isMessageDisableForAllUser;
443
440
  this.isSeatEnabled = isSeatEnabled;
444
441
  this.seatMode = seatMode;
445
442
  this.canControlSelfAudio = !this.isMicrophoneDisableForAllUser;
@@ -453,9 +450,6 @@ const useRoomStore = pinia.defineStore("room", {
453
450
  setDisableCameraForAllUserByAdmin(isDisable) {
454
451
  this.isCameraDisableForAllUser = isDisable;
455
452
  },
456
- setDisableMessageAllUserByAdmin(isDisable) {
457
- this.isMessageDisableForAllUser = isDisable;
458
- },
459
453
  setMasterUserId(userId) {
460
454
  this.masterUserId = userId;
461
455
  },
@@ -536,7 +530,7 @@ const useRoomStore = pinia.defineStore("room", {
536
530
  setMuteUserChat(userId, muted) {
537
531
  const remoteUserInfo = this.remoteUserObj[userId];
538
532
  if (remoteUserInfo) {
539
- remoteUserInfo.isChatMutedByMasterOrAdmin = muted;
533
+ remoteUserInfo.isMessageDisabled = muted;
540
534
  }
541
535
  },
542
536
  setRemoteUserRole(userId, role) {
@@ -645,7 +639,6 @@ const useRoomStore = pinia.defineStore("room", {
645
639
  this.masterUserId = "";
646
640
  this.isMicrophoneDisableForAllUser = false;
647
641
  this.isCameraDisableForAllUser = false;
648
- this.isMessageDisableForAllUser = false;
649
642
  this.isSeatEnabled = false;
650
643
  this.seatMode = TUIRoomEngine.TUISeatMode.kFreeToTake;
651
644
  this.hasVideoStreamObject = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencentcloud/roomkit-electron-vue3",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.mjs",
6
6
  "types": "./es/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "@tencentcloud/chat": "latest",
22
22
  "@tencentcloud/tui-core": "latest",
23
- "@tencentcloud/tuiroom-engine-electron": "^2.4.0",
23
+ "@tencentcloud/tuiroom-engine-electron": "^2.4.2",
24
24
  "@tencentcloud/universal-api": "^2.0.9",
25
25
  "interactjs": "^1.10.26",
26
26
  "mitt": "^3.0.0"
@@ -1,12 +1,12 @@
1
1
  <template>
2
- <div :class="['chat-editor', { 'disable': cannotSendMessage }]">
2
+ <div :class="['chat-editor', { 'disable': isMessageDisabled }]">
3
3
  <emoji class="chat-emoji" @choose-emoji="handleChooseEmoji"></emoji>
4
4
  <textarea
5
5
  ref="editorInputEle"
6
6
  v-model="sendMsg"
7
- :disabled="cannotSendMessage"
7
+ :disabled="isMessageDisabled"
8
8
  class="content-bottom-input"
9
- :placeholder="cannotSendMessage ? t('Muted by the moderator') : t('Type a message')"
9
+ :placeholder="isMessageDisabled ? t('Muted by the moderator') : t('Type a message')"
10
10
  @keyup.enter="sendMessage"
11
11
  />
12
12
  </div>
@@ -19,7 +19,7 @@ const {
19
19
  t,
20
20
  editorInputEle,
21
21
  sendMsg,
22
- cannotSendMessage,
22
+ isMessageDisabled,
23
23
  sendMessage,
24
24
  handleChooseEmoji,
25
25
  } = useChatEditor();
@@ -1,4 +1,4 @@
1
- import { computed, ref, watch } from 'vue';
1
+ import { ref, watch } from 'vue';
2
2
  import { storeToRefs } from 'pinia';
3
3
  import TUIMessage from '../../common/base/Message/index';
4
4
 
@@ -18,23 +18,15 @@ export default function useChatEditor() {
18
18
  const roomStore = useRoomStore();
19
19
 
20
20
  const { roomId } = storeToRefs(basicStore);
21
- const { isMessageDisableByAdmin } = storeToRefs(chatStore);
22
- const { isMessageDisableForAllUser } = storeToRefs(roomStore);
21
+ const { isMessageDisabled } = storeToRefs(chatStore);
23
22
  const editorInputEle = ref();
24
23
  const sendMsg = ref('');
25
24
  const isEmojiToolbarVisible = ref(false);
26
- watch(isMessageDisableByAdmin, (value) => {
25
+ watch(isMessageDisabled, (value) => {
27
26
  if (value) {
28
27
  sendMsg.value = '';
29
28
  }
30
29
  });
31
-
32
- watch(isMessageDisableForAllUser, (value) => {
33
- if (value) {
34
- sendMsg.value = '';
35
- }
36
- });
37
- const cannotSendMessage = computed(() => Boolean(isMessageDisableByAdmin.value || isMessageDisableForAllUser.value));
38
30
  const sendMessage = async () => {
39
31
  const result = decodeSendTextMsg(sendMsg.value);
40
32
  if (result === '') {
@@ -85,8 +77,7 @@ export default function useChatEditor() {
85
77
  t,
86
78
  editorInputEle,
87
79
  sendMsg,
88
- isMessageDisableByAdmin,
89
- cannotSendMessage,
80
+ isMessageDisabled,
90
81
  sendMessage,
91
82
  handleChooseEmoji,
92
83
  isEmojiToolbarVisible,
@@ -117,7 +117,7 @@ export default function useMemberControl(props?: any) {
117
117
  const chatControl = computed(() => ({
118
118
  key: 'chatControl',
119
119
  icon: ChatForbiddenIcon,
120
- title: props.userInfo.isChatMutedByMasterOrAdmin ? t('Enable chat') : t('Disable chat'),
120
+ title: props.userInfo.isMessageDisabled ? t('Enable chat') : t('Disable chat'),
121
121
  func: disableUserChat,
122
122
  }));
123
123
 
@@ -278,13 +278,21 @@ export default function useMemberControl(props?: any) {
278
278
  /**
279
279
  * Allow text chat / Cancel text chat
280
280
  **/
281
- function disableUserChat(userInfo: UserInfo) {
282
- const currentState = userInfo.isChatMutedByMasterOrAdmin;
283
- roomStore.setMuteUserChat(userInfo.userId, !currentState);
284
- roomEngine.instance?.disableSendingMessageByAdmin({
285
- userId: userInfo.userId,
286
- isDisable: !currentState,
287
- });
281
+ async function disableUserChat(userInfo: UserInfo) {
282
+ const { isMessageDisabled } = userInfo;
283
+ try {
284
+ await roomEngine.instance?.disableSendingMessageByAdmin({
285
+ userId: userInfo.userId,
286
+ isDisable: !isMessageDisabled,
287
+ });
288
+ roomStore.setMuteUserChat(userInfo.userId, !isMessageDisabled);
289
+ } catch (error) {
290
+ TUIMessage({
291
+ type: 'error',
292
+ message: t('Failed to disable chat'),
293
+ duration: MESSAGE_DURATION.NORMAL,
294
+ });
295
+ }
288
296
  }
289
297
 
290
298
  /**
@@ -154,7 +154,7 @@ export default function useEndControl() {
154
154
  }
155
155
  handleUpdateSeatApplicationList();
156
156
  }
157
- if (chatStore.isMessageDisableByAdmin) {
157
+ if (chatStore.isMessageDisabled) {
158
158
  roomEngine.instance?.disableSendingMessageByAdmin({
159
159
  userId,
160
160
  isDisable: false,
@@ -298,6 +298,7 @@ const onKickedOffLine = (eventInfo: { message: string }) => {
298
298
  width: 100%;
299
299
  height: 100%;
300
300
  min-width: 850px;
301
+ min-height: 400px;
301
302
  position: relative;
302
303
  color: var(--font-color-1);
303
304
  background-color: var(--background-color-1);
@@ -328,6 +329,7 @@ const onKickedOffLine = (eventInfo: { message: string }) => {
328
329
  width: 100%;
329
330
  height: 100%;
330
331
  min-width: initial;
332
+ min-height: initial;
331
333
  }
332
334
  }
333
335
 
@@ -46,6 +46,9 @@
46
46
  .title {
47
47
  font-size: 16px;
48
48
  font-weight: 500;
49
+ overflow: hidden;
50
+ text-overflow: ellipsis;
51
+ white-space: nowrap;
49
52
  }
50
53
 
51
54
  .users {
@@ -318,8 +318,10 @@ export class ChatExtension {
318
318
  roomService.basicStore.setScene('chat');
319
319
  roomService.componentManager.setComponentConfig({
320
320
  SwitchTheme: { visible: false },
321
+ Language: { visible: false },
321
322
  InviteControl: { visible: false },
322
323
  RoomLink: { visible: false },
324
+ UserInfo: { visible: false },
323
325
  });
324
326
  this.chatContext = TUILogin.getContext();
325
327
  this.myProfile = await this.getMyProfile();
@@ -1,12 +1,20 @@
1
1
  import ConferenceMainView from './conference.vue';
2
2
  import PreConferenceView from './preConference.vue';
3
3
  import TUIRoomEngine from '@tencentcloud/tuiroom-engine-electron';
4
- import { conference, RoomEvent } from './conference';
4
+ import { conference, RoomEvent, FeatureButton } from './conference';
5
5
  import RoomMessageCard from './extension/RoomMessageCard/RoomMessageCard.vue';
6
6
  import { roomService } from './services';
7
7
  export * from './components/common/base/index';
8
-
9
- export { ConferenceMainView, PreConferenceView, TUIRoomEngine, roomService, conference, RoomEvent, RoomMessageCard };
8
+ export {
9
+ ConferenceMainView,
10
+ PreConferenceView,
11
+ TUIRoomEngine,
12
+ roomService,
13
+ conference,
14
+ RoomEvent,
15
+ FeatureButton,
16
+ RoomMessageCard,
17
+ };
10
18
 
11
19
  ConferenceMainView.install = (app) => {
12
20
  app.component('ConferenceView', ConferenceMainView);
@@ -208,8 +208,6 @@ export default {
208
208
  'Sb invites you to turn on the microphone': ({ named }) => `${named('role')} invites you to turn on the microphone`,
209
209
  'All videos disabled': 'All videos disabled',
210
210
  'All videos enabled': 'All videos enabled',
211
- 'Disabling text chat for all is enabled': 'Disabling text chat for all is enabled',
212
- 'Unblocked all text chat': 'Unblocked all text chat',
213
211
  'Your camera has been turned off': 'Your camera has been turned off',
214
212
  // @ts-ignore
215
213
  'Sb invites you to turn on the camera': ({ named }) => `${named('role')} invites you to turn on the camera`,
@@ -307,4 +305,5 @@ export default {
307
305
  'Currently in a meeting, please exit the current meeting before proceeding.': 'Currently in a meeting, please exit the current meeting before proceeding.',
308
306
  'Failed to initiate meeting': 'Failed to initiate meeting',
309
307
  'Failed to enter the meeting': 'Failed to enter the meeting',
308
+ 'Failed to disable chat': 'Failed to disable chat',
310
309
  };
@@ -208,8 +208,6 @@ export default {
208
208
  'Sb invites you to turn on the microphone': ({ named }) => `${named('role')}邀请你打开麦克风`,
209
209
  'All videos disabled': '已开启全体禁画',
210
210
  'All videos enabled': '已解除全体禁画',
211
- 'Disabling text chat for all is enabled': '已开启全体禁止文字聊天',
212
- 'Unblocked all text chat': '已解除全体禁止文字聊天',
213
211
  'Your camera has been turned off': '已关闭您的摄像头',
214
212
  // @ts-ignore
215
213
  'Sb invites you to turn on the camera': ({ named }) => `${named('role')}邀请你打开摄像头`,
@@ -307,4 +305,5 @@ export default {
307
305
  'Currently in a meeting, please exit the current meeting before proceeding.': '正在会议中,请先退出当前会议后再进行操作',
308
306
  'Failed to initiate meeting': '发起会议失败',
309
307
  'Failed to enter the meeting': '进入会议失败',
308
+ 'Failed to disable chat': '禁言失败',
310
309
  };
@@ -74,7 +74,6 @@ export class RoomService implements IRoomService {
74
74
  this.onKickedOffLine = this.onKickedOffLine.bind(this);
75
75
  this.onAllUserCameraDisableChanged = this.onAllUserCameraDisableChanged.bind(this);
76
76
  this.onAllUserMicrophoneDisableChanged = this.onAllUserMicrophoneDisableChanged.bind(this);
77
- this.onSendMessageForAllUserDisableChanged = this.onSendMessageForAllUserDisableChanged.bind(this);
78
77
  }
79
78
 
80
79
  static getInstance(): RoomService {
@@ -119,10 +118,6 @@ export class RoomService implements IRoomService {
119
118
  roomEngine.instance?.on(TUIRoomEvents.onKickedOffLine, this.onKickedOffLine);
120
119
  roomEngine.instance?.on(TUIRoomEvents.onAllUserCameraDisableChanged, this.onAllUserCameraDisableChanged);
121
120
  roomEngine.instance?.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, this.onAllUserMicrophoneDisableChanged);
122
- roomEngine.instance?.on(
123
- TUIRoomEvents.onSendMessageForAllUserDisableChanged,
124
- this.onSendMessageForAllUserDisableChanged,
125
- );
126
121
  }
127
122
 
128
123
  public unBindRoomEngineEvents() {
@@ -136,10 +131,6 @@ export class RoomService implements IRoomService {
136
131
  roomEngine.instance?.off(TUIRoomEvents.onKickedOffLine, this.onKickedOffLine);
137
132
  roomEngine.instance?.off(TUIRoomEvents.onAllUserCameraDisableChanged, this.onAllUserCameraDisableChanged);
138
133
  roomEngine.instance?.off(TUIRoomEvents.onAllUserMicrophoneDisableChanged, this.onAllUserMicrophoneDisableChanged);
139
- roomEngine.instance?.off(
140
- TUIRoomEvents.onSendMessageForAllUserDisableChanged,
141
- this.onSendMessageForAllUserDisableChanged,
142
- );
143
134
  }
144
135
 
145
136
  private onError(error: any) {
@@ -287,26 +278,6 @@ export class RoomService implements IRoomService {
287
278
  this.roomStore.setDisableMicrophoneForAllUserByAdmin(isDisable);
288
279
  }
289
280
 
290
- private async onSendMessageForAllUserDisableChanged(eventInfo: { roomId: string; isDisable: boolean }) {
291
- const { isDisable } = eventInfo;
292
- if (
293
- isDisable !== this.roomStore.isMessageDisableForAllUser
294
- && this.roomStore.localUser.userRole === TUIRole.kGeneralUser
295
- ) {
296
- this.handleMessageStateChange(isDisable);
297
- }
298
- this.roomStore.setDisableMessageAllUserByAdmin(isDisable);
299
- }
300
-
301
- private async handleMessageStateChange(isDisableMessage: boolean) {
302
- const tipMessage = isDisableMessage ? t('Disabling text chat for all is enabled') : t('Unblocked all text chat');
303
- this.emit(EventType.ROOM_NOTICE_MESSAGE, {
304
- type: 'success',
305
- message: tipMessage,
306
- duration: MESSAGE_DURATION.NORMAL,
307
- });
308
- }
309
-
310
281
  private async handleAudioStateChange(isDisableAudio: boolean) {
311
282
  const tipMessage = isDisableAudio ? t('All audios disabled') : t('All audios enabled');
312
283
  this.emit(EventType.ROOM_NOTICE_MESSAGE, {
@@ -14,7 +14,7 @@ interface MessageItem {
14
14
 
15
15
  interface ChatState {
16
16
  messageList: MessageItem[];
17
- isMessageDisableByAdmin: boolean;
17
+ isMessageDisabled: boolean;
18
18
  unReadCount: number;
19
19
  isCompleted: boolean;
20
20
  // Is the list of all messages pulled
@@ -24,7 +24,7 @@ interface ChatState {
24
24
  export const useChatStore = defineStore('chat', {
25
25
  state: (): ChatState => ({
26
26
  messageList: [],
27
- isMessageDisableByAdmin: false,
27
+ isMessageDisabled: false,
28
28
  unReadCount: 0,
29
29
  isCompleted: false,
30
30
  nextReqMessageId: '',
@@ -49,16 +49,15 @@ export const useChatStore = defineStore('chat', {
49
49
  addHistoryMessages(messageList: MessageItem[]) {
50
50
  const messageIds = this.messageList.map(message => message.ID);
51
51
  const filteredMessageList = messageList.filter(message => messageIds.indexOf(message.ID) === -1);
52
- this.messageList = filteredMessageList.concat(this.messageList).sort((
53
- messageA: MessageItem, messageB: MessageItem) => messageA.sequence - messageB.sequence);
52
+ this.messageList = filteredMessageList.concat(this.messageList).sort((messageA: MessageItem, messageB: MessageItem) => messageA.sequence - messageB.sequence);
54
53
  },
55
54
  setSendMessageDisableChanged(isDisable: boolean) {
56
- this.isMessageDisableByAdmin = isDisable;
55
+ this.isMessageDisabled = isDisable;
57
56
  },
58
57
  reset() {
59
58
  this.messageList = [];
60
59
  this.unReadCount = 0;
61
- this.isMessageDisableByAdmin = false;
60
+ this.isMessageDisabled = false;
62
61
  },
63
62
  },
64
63
  });
@@ -36,10 +36,10 @@ export type UserInfo = {
36
36
  hasScreenStream?: boolean,
37
37
  isVideoVisible?: boolean,
38
38
  isScreenVisible?: boolean,
39
+ isMessageDisabled?: boolean,
39
40
  userRole?: TUIRole,
40
41
  // Is it on the seat
41
42
  onSeat?: boolean,
42
- isChatMutedByMasterOrAdmin?: boolean,
43
43
  // Whether the user is being asked to turn on the microphone
44
44
  isRequestingUserOpenMic?: boolean,
45
45
  // The requestId for requesting the user to turn on the microphone
@@ -83,7 +83,6 @@ interface RoomState {
83
83
  masterUserId: string,
84
84
  isMicrophoneDisableForAllUser: boolean,
85
85
  isCameraDisableForAllUser: boolean,
86
- isMessageDisableForAllUser: boolean,
87
86
  isSeatEnabled: boolean,
88
87
  seatMode: TUISeatMode,
89
88
  maxMembersCount: number,
@@ -140,7 +139,6 @@ export const useRoomStore = defineStore('room', {
140
139
  masterUserId: '',
141
140
  isMicrophoneDisableForAllUser: false,
142
141
  isCameraDisableForAllUser: false,
143
- isMessageDisableForAllUser: false,
144
142
  isSeatEnabled: false,
145
143
  seatMode: TUISeatMode.kFreeToTake,
146
144
  maxMembersCount: 5, // Includes local streams and screen shares, above which subsequent streams are played
@@ -292,9 +290,9 @@ export const useRoomStore = defineStore('room', {
292
290
  hasScreenStream: false,
293
291
  isVideoVisible: false,
294
292
  isScreenVisible: false,
293
+ isMessageDisabled: false,
295
294
  userRole: TUIRole.kGeneralUser,
296
295
  onSeat: !this.isSpeakAfterTakingSeatMode,
297
- isChatMutedByMasterOrAdmin: false,
298
296
  isUserApplyingToAnchor: false,
299
297
  isInvitingUserToAnchor: false,
300
298
  cameraStreamInfo: {
@@ -521,7 +519,7 @@ export const useRoomStore = defineStore('room', {
521
519
  setRoomInfo(roomInfo: TUIRoomInfo) {
522
520
  const {
523
521
  roomOwner, isMicrophoneDisableForAllUser,
524
- isCameraDisableForAllUser, isMessageDisableForAllUser,
522
+ isCameraDisableForAllUser,
525
523
  isSeatEnabled, seatMode, maxSeatCount, roomName,
526
524
  } = roomInfo;
527
525
  if (this.localUser.userId === roomOwner) {
@@ -531,7 +529,6 @@ export const useRoomStore = defineStore('room', {
531
529
  this.masterUserId = roomOwner;
532
530
  this.isMicrophoneDisableForAllUser = isMicrophoneDisableForAllUser;
533
531
  this.isCameraDisableForAllUser = isCameraDisableForAllUser;
534
- this.isMessageDisableForAllUser = isMessageDisableForAllUser;
535
532
  this.isSeatEnabled = isSeatEnabled;
536
533
  this.seatMode = seatMode;
537
534
  this.canControlSelfAudio = !this.isMicrophoneDisableForAllUser;
@@ -545,9 +542,6 @@ export const useRoomStore = defineStore('room', {
545
542
  setDisableCameraForAllUserByAdmin(isDisable: boolean) {
546
543
  this.isCameraDisableForAllUser = isDisable;
547
544
  },
548
- setDisableMessageAllUserByAdmin(isDisable: boolean) {
549
- this.isMessageDisableForAllUser = isDisable;
550
- },
551
545
  setMasterUserId(userId: string) {
552
546
  this.masterUserId = userId;
553
547
  },
@@ -633,7 +627,7 @@ export const useRoomStore = defineStore('room', {
633
627
  setMuteUserChat(userId: string, muted: boolean) {
634
628
  const remoteUserInfo = this.remoteUserObj[userId];
635
629
  if (remoteUserInfo) {
636
- remoteUserInfo.isChatMutedByMasterOrAdmin = muted;
630
+ remoteUserInfo.isMessageDisabled = muted;
637
631
  }
638
632
  },
639
633
  setRemoteUserRole(userId: string, role: TUIRole) {
@@ -743,7 +737,6 @@ export const useRoomStore = defineStore('room', {
743
737
  this.masterUserId = '';
744
738
  this.isMicrophoneDisableForAllUser = false;
745
739
  this.isCameraDisableForAllUser = false;
746
- this.isMessageDisableForAllUser = false;
747
740
  this.isSeatEnabled = false;
748
741
  this.seatMode = TUISeatMode.kFreeToTake;
749
742
  this.hasVideoStreamObject = {};