import { IUnverifiedOrgOption, IMonitoringWindowSink } from '@lenovo-software/lsa-clients-common'; import { MonitoringStatusWindowController, JoinClassOptOutUserChoice, IMonitoringStatusEventHandler } from './monitoringStatusWindowController'; export class UnverifiedOrgOption implements IUnverifiedOrgOption, IMonitoringStatusEventHandler { private monitoringStatusWindowController: MonitoringStatusWindowController; private sink: IMonitoringWindowSink | null = null; private teacherName = ''; public constructor() { this.monitoringStatusWindowController = new MonitoringStatusWindowController(this); } public getTeacherName(): string { return this.teacherName; } public closeWindow() { this.monitoringStatusWindowController.closeWindow(); } public joinClassOptOut(sink: IMonitoringWindowSink): void { //sink is defined in CC LSAClient.ts this.sink = this.sink || sink; this.sink.getMonitoringWindowState().then((stateObj: any) => { if (stateObj.presentation === 'UserRequest') { this.teacherName = stateObj.param; this.monitoringStatusWindowController.displayJoinClassOptOut(); } else if (stateObj.presentation === 'ActiveMonitoring') { this.monitoringStatusWindowController.displayWeAreActiveMonitoring(); } }); } public onClassOptOut(userChoice: JoinClassOptOutUserChoice): void { if (userChoice === JoinClassOptOutUserChoice.Reject) { this.sink?.userRejectsMonitoring(); } else if (userChoice === JoinClassOptOutUserChoice.Accept) { this.sink?.userAllowsMonitoring(); } } }