agora-edu-core
Version:
Core APIs for building an online classroom
68 lines (66 loc) • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.CoVideoAction = void 0;
var _configs = require("../../../../configs");
var _eventCenter = require("../../../../event-center");
var _type = require("../../../../type");
var _utils = require("../../../../utils");
let CoVideoAction = exports.CoVideoAction = /*#__PURE__*/function (CoVideoAction) {
CoVideoAction[CoVideoAction["studentHandsUp"] = 1] = "studentHandsUp";
CoVideoAction[CoVideoAction["teacherAccept"] = 2] = "teacherAccept";
CoVideoAction[CoVideoAction["teacherRefuse"] = 3] = "teacherRefuse";
CoVideoAction[CoVideoAction["studentCancel"] = 4] = "studentCancel";
CoVideoAction[CoVideoAction["studentOffStage"] = 6] = "studentOffStage";
CoVideoAction[CoVideoAction["teacherReplayTimeout"] = 7] = "teacherReplayTimeout";
CoVideoAction[CoVideoAction["carousel"] = 10] = "carousel";
return CoVideoAction;
}({});
class CMDHandler {
constructor(_delegate) {
this._delegate = _delegate;
}
exec(operator, cause, changedProperties, sceneId) {
const currentSceneId = this._delegate.getCurrentSceneId();
if (sceneId !== currentSceneId) {
return;
}
// cause may be undefined at first time
const {
cmd,
data
} = cause || {};
if (cmd === 501) {
this.handleHandup(operator, data, changedProperties);
}
}
handleHandup(operator, data, changedProperties) {
const process = data.processUuid;
const {
sessionInfo: {
userUuid,
roomType
}
} = _configs.EduClassroomConfig.shared;
if (process === 'handsUp') {
switch (data.actionType) {
case CoVideoAction.teacherAccept:
{
if (data.addAccepted.findIndex(item => item.userUuid === userUuid) !== -1 && (0, _utils.RteRole2EduRole)(roomType, operator.role) === _type.EduRoleTypeEnum.teacher) {
_eventCenter.EduEventCenter.shared.emitClasroomEvents(_type.AgoraEduClassroomEvent.UserAcceptToStage);
}
break;
}
case CoVideoAction.studentOffStage:
{
if (data.removeAccepted.findIndex(item => item.userUuid === userUuid) !== -1 && (0, _utils.RteRole2EduRole)(roomType, operator.role) === _type.EduRoleTypeEnum.teacher) {
_eventCenter.EduEventCenter.shared.emitClasroomEvents(_type.AgoraEduClassroomEvent.UserLeaveStage);
}
break;
}
}
}
}
}
var _default = exports.default = CMDHandler;