diff --git a/frontend/app/player/web/assist/AssistManager.ts b/frontend/app/player/web/assist/AssistManager.ts index 2750d461f..1d3fd8822 100644 --- a/frontend/app/player/web/assist/AssistManager.ts +++ b/frontend/app/player/web/assist/AssistManager.ts @@ -171,14 +171,18 @@ export default class AssistManager { }) socket.on('messages', messages => { - if (messages.data !== undefined) this.assistVersion = 2 - + const isOldVersion = messages.meta.version === 1 + this.assistVersion = messages.meta.version const data = messages.data || messages jmr.append(data) // as RawMessage[] if (waitingForMessages) { waitingForMessages = false // TODO: more explicit this.setStatus(ConnectionStatus.Connected) } + if (messages.meta.tabId !== this.store.get().currentTab && isOldVersion) { + reader.currentTab = messages.meta.tabId + this.store.update({ currentTab: messages.meta.tabId }) + } for (let msg = reader.readNext();msg !== null;msg = reader.readNext()) { this.handleMessage(msg, msg._index) @@ -194,8 +198,7 @@ export default class AssistManager { socket.on('UPDATE_SESSION', (evData) => { const { meta = {}, data = {} } = evData const { tabId } = meta - const usedData = this.assistVersion === 1 ? evData : data - const { active } = usedData + const { active } = data const currentTab = this.store.get().currentTab this.clearDisconnectTimeout() !this.inactiveTimeout && this.setStatus(ConnectionStatus.Connected) @@ -204,9 +207,6 @@ export default class AssistManager { if (active) { this.setStatus(ConnectionStatus.Connected) } else { - if (tabId === undefined) { - this.inactiveTimeout = setTimeout(() => this.setStatus(ConnectionStatus.Inactive), 5000) - } if (tabId === currentTab) { this.inactiveTimeout = setTimeout(() => this.setStatus(ConnectionStatus.Inactive), 5000) } diff --git a/frontend/app/player/web/assist/Call.ts b/frontend/app/player/web/assist/Call.ts index 5399a2b25..a702c3692 100644 --- a/frontend/app/player/web/assist/Call.ts +++ b/frontend/app/player/web/assist/Call.ts @@ -22,7 +22,6 @@ export interface State { } export default class Call { - private assistVersion = 1 static readonly INITIAL_STATE: Readonly = { calling: CallingState.NoCall } @@ -66,7 +65,6 @@ export default class Call { socket.on("disconnect", () => { this.store.update({ calling: CallingState.NoCall }) }) - this.assistVersion = this.getAssistVersion() } private getPeer(): Promise { @@ -173,7 +171,7 @@ export default class Call { } private emitData = (event: string, data?: any) => { - if (this.assistVersion === 1) { + if (this.getAssistVersion() === 1) { this.socket?.emit(event, data) } else { this.socket?.emit(event, { meta: { tabId: this.store.get().currentTab }, data }) @@ -238,7 +236,7 @@ export default class Call { if (!this.store.get().currentTab) { console.warn('No tab data to connect to peer') } - const peerId = this.assistVersion === 1 ? this.peerID : `${this.peerID}-${tab || Object.keys(this.store.get().tabs)[0]}` + const peerId = this.getAssistVersion() === 1 ? this.peerID : `${this.peerID}-${tab || Object.keys(this.store.get().tabs)[0]}` void this._peerConnection(peerId); this.emitData("_agent_name", appStore.getState().getIn([ 'user', 'account', 'name'])) } diff --git a/frontend/app/player/web/assist/RemoteControl.ts b/frontend/app/player/web/assist/RemoteControl.ts index 3b7405788..7e98d995e 100644 --- a/frontend/app/player/web/assist/RemoteControl.ts +++ b/frontend/app/player/web/assist/RemoteControl.ts @@ -16,7 +16,6 @@ export interface State { } export default class RemoteControl { - private assistVersion = 1 static readonly INITIAL_STATE: Readonly = { remoteControl: RemoteControlStatus.Disabled, annotating: false, @@ -29,7 +28,7 @@ export default class RemoteControl { private screen: Screen, private agentInfo: Object, private onToggle: (active: boolean) => void, - private getAssistVersion: () => number, + private getAssistVersion: () => number ){ socket.on("control_granted", ({ meta, data }) => { this.toggleRemoteControl(data === socket.id) @@ -49,7 +48,6 @@ export default class RemoteControl { socket.on("error", () => { this.toggleRemoteControl(false) }) - this.assistVersion = getAssistVersion() } private onMouseMove = (e: MouseEvent): void => { @@ -58,7 +56,7 @@ export default class RemoteControl { } private emitData = (event: string, data?: any) => { - if (this.assistVersion === 1) { + if (this.getAssistVersion()) { this.socket.emit(event, data) } else { this.socket.emit(event, { meta: { tabId: this.store.get().currentTab }, data }) diff --git a/tracker/tracker-assist/package.json b/tracker/tracker-assist/package.json index bcdee50af..bdca10d05 100644 --- a/tracker/tracker-assist/package.json +++ b/tracker/tracker-assist/package.json @@ -1,7 +1,7 @@ { "name": "@openreplay/tracker-assist", "description": "Tracker plugin for screen assistance through the WebRTC", - "version": "6.0.0-beta.11", + "version": "6.0.0", "keywords": [ "WebRTC", "assistance", @@ -21,7 +21,7 @@ "replace-paths": "replace-in-files cjs/* --string='@openreplay/tracker' --replacement='@openreplay/tracker/cjs' && replace-in-files cjs/* --string='/lib/' --replacement='/'", "replace-versions": "npm run replace-pkg-version && npm run replace-req-version", "replace-pkg-version": "replace-in-files lib/* cjs/* --string='PACKAGE_VERSION' --replacement=$npm_package_version", - "replace-req-version": "replace-in-files lib/* cjs/* --string='REQUIRED_TRACKER_VERSION' --replacement='3.5.14'", + "replace-req-version": "replace-in-files lib/* cjs/* --string='REQUIRED_TRACKER_VERSION' --replacement='8.0.0'", "prepublishOnly": "npm run build", "prepare": "cd ../../ && husky install tracker/.husky/", "lint-front": "lint-staged", diff --git a/tracker/tracker/package.json b/tracker/tracker/package.json index d76c42964..9bedaa6f6 100644 --- a/tracker/tracker/package.json +++ b/tracker/tracker/package.json @@ -1,7 +1,7 @@ { "name": "@openreplay/tracker", "description": "The OpenReplay tracker main package", - "version": "8.0.0-beta.5", + "version": "8.0.0", "keywords": [ "logging", "replay"