From eeeebd3c84bd8dde30d87a2da92f12b24cd072e7 Mon Sep 17 00:00:00 2001 From: CRIMX Date: Fri, 19 Aug 2022 15:28:21 +0800 Subject: [PATCH] chore(classroom): disable device state after off stage --- packages/flat-stores/src/classroom-store/index.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/flat-stores/src/classroom-store/index.ts b/packages/flat-stores/src/classroom-store/index.ts index 63a36e8de88..59283c0b2d4 100644 --- a/packages/flat-stores/src/classroom-store/index.ts +++ b/packages/flat-stores/src/classroom-store/index.ts @@ -401,6 +401,7 @@ export class ClassroomStore { // promises.push(this.stopRecording()); this.deviceStateStorage = undefined; + this.onStageUsersStorage = undefined; this.classroomStorage = undefined; } @@ -538,18 +539,21 @@ export class ClassroomStore { if ( this.classMode === ClassModeType.Interaction || userUUID === this.ownerUUID || - !this.whiteboardStore.isWritable + !this.onStageUsersStorage?.isWritable ) { return; } if (this.isCreator) { - this.onStageUsersStorage?.setState({ [userUUID]: onStage }); + this.onStageUsersStorage.setState({ [userUUID]: onStage }); } else { // joiner can only turn off speaking if (!onStage && userUUID === this.userUUID) { - this.onStageUsersStorage?.setState({ [userUUID]: false }); + this.onStageUsersStorage.setState({ [userUUID]: false }); } } + if (!onStage) { + this.updateDeviceState(userUUID, false, false); + } }; /** joiner updates own camera and mic state */