@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.
- package/es/components/Chat/ChatEditor/index.vue.mjs +1 -1
- package/es/components/Chat/ChatEditor/index.vue2.mjs +4 -4
- package/es/components/Chat/ChatEditor/useChatEditor.d.ts +1 -2
- package/es/components/Chat/ChatEditor/useChatEditor.mjs +4 -12
- package/es/components/ManageMember/MemberControl/useMemberControlHooks.mjs +16 -8
- package/es/components/RoomFooter/EndControl/useEndControlHooks.mjs +1 -1
- package/es/conference.mjs +9 -0
- package/es/conference.vue.mjs +1 -1
- package/es/extension/chatExtension.mjs +3 -1
- package/es/index.d.ts +2 -2
- package/es/index.mjs +1399 -1393
- package/es/locales/en-US.d.ts +1 -2
- package/es/locales/en-US.mjs +2 -3
- package/es/locales/zh-CN.d.ts +1 -2
- package/es/locales/zh-CN.mjs +2 -3
- package/es/services/roomService.d.ts +0 -2
- package/es/services/roomService.mjs +2 -26
- package/es/stores/chat.mjs +3 -3
- package/es/stores/room.d.ts +1 -1
- package/es/stores/room.mjs +2 -9
- package/lib/components/Chat/ChatEditor/index.vue.js +1 -1
- package/lib/components/Chat/ChatEditor/index.vue2.js +4 -4
- package/lib/components/Chat/ChatEditor/useChatEditor.d.ts +1 -2
- package/lib/components/Chat/ChatEditor/useChatEditor.js +3 -11
- package/lib/components/ManageMember/MemberControl/useMemberControlHooks.js +16 -8
- package/lib/components/RoomFooter/EndControl/useEndControlHooks.js +1 -1
- package/lib/conference.js +9 -0
- package/lib/conference.vue.js +1 -1
- package/lib/extension/chatExtension.js +3 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1398 -1392
- package/lib/locales/en-US.d.ts +1 -2
- package/lib/locales/en-US.js +2 -3
- package/lib/locales/zh-CN.d.ts +1 -2
- package/lib/locales/zh-CN.js +2 -3
- package/lib/services/roomService.d.ts +0 -2
- package/lib/services/roomService.js +2 -26
- package/lib/stores/chat.js +3 -3
- package/lib/stores/room.d.ts +1 -1
- package/lib/stores/room.js +2 -9
- package/package.json +2 -2
- package/src/TUIRoom/components/Chat/ChatEditor/index.vue +4 -4
- package/src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts +4 -13
- package/src/TUIRoom/components/ManageMember/MemberControl/useMemberControlHooks.ts +16 -8
- package/src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts +1 -1
- package/src/TUIRoom/conference.vue +2 -0
- package/src/TUIRoom/extension/RoomMessageCard/roomMessageCard.scss +3 -0
- package/src/TUIRoom/extension/chatExtension.ts +2 -0
- package/src/TUIRoom/index.ts +11 -3
- package/src/TUIRoom/locales/en-US.ts +1 -2
- package/src/TUIRoom/locales/zh-CN.ts +1 -2
- package/src/TUIRoom/services/roomService.ts +0 -29
- package/src/TUIRoom/stores/chat.ts +5 -6
- package/src/TUIRoom/stores/room.ts +4 -11
package/lib/locales/en-US.d.ts
CHANGED
|
@@ -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;
|
package/lib/locales/en-US.js
CHANGED
|
@@ -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;
|
package/lib/locales/zh-CN.d.ts
CHANGED
|
@@ -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;
|
package/lib/locales/zh-CN.js
CHANGED
|
@@ -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
|
|
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
|
|
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");
|
package/lib/stores/chat.js
CHANGED
|
@@ -4,7 +4,7 @@ const pinia = require("pinia");
|
|
|
4
4
|
const useChatStore = pinia.defineStore("chat", {
|
|
5
5
|
state: () => ({
|
|
6
6
|
messageList: [],
|
|
7
|
-
|
|
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.
|
|
34
|
+
this.isMessageDisabled = isDisable;
|
|
35
35
|
},
|
|
36
36
|
reset() {
|
|
37
37
|
this.messageList = [];
|
|
38
38
|
this.unReadCount = 0;
|
|
39
|
-
this.
|
|
39
|
+
this.isMessageDisabled = false;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
});
|
package/lib/stores/room.d.ts
CHANGED
|
@@ -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;
|
package/lib/stores/room.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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':
|
|
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="
|
|
7
|
+
:disabled="isMessageDisabled"
|
|
8
8
|
class="content-bottom-input"
|
|
9
|
-
:placeholder="
|
|
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
|
-
|
|
22
|
+
isMessageDisabled,
|
|
23
23
|
sendMessage,
|
|
24
24
|
handleChooseEmoji,
|
|
25
25
|
} = useChatEditor();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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 {
|
|
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(
|
|
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
|
-
|
|
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.
|
|
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
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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.
|
|
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
|
|
|
@@ -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();
|
package/src/TUIRoom/index.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
55
|
+
this.isMessageDisabled = isDisable;
|
|
57
56
|
},
|
|
58
57
|
reset() {
|
|
59
58
|
this.messageList = [];
|
|
60
59
|
this.unReadCount = 0;
|
|
61
|
-
this.
|
|
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,
|
|
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.
|
|
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 = {};
|