From dfe3c1e9f4c45d3b2af6805be345b7214e2606cd Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Tue, 16 Nov 2021 20:46:52 +0100 Subject: [PATCH] feat(tracker-assist): accept remote click event --- tracker/tracker-assist/package.json | 2 +- tracker/tracker-assist/src/index.ts | 26 ++++++++++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/tracker/tracker-assist/package.json b/tracker/tracker-assist/package.json index b9d4b77ef..145a981c9 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": "3.4.4", + "version": "3.4.5", "keywords": [ "WebRTC", "assistance", diff --git a/tracker/tracker-assist/src/index.ts b/tracker/tracker-assist/src/index.ts index e09bc0ab8..0bbe115df 100644 --- a/tracker/tracker-assist/src/index.ts +++ b/tracker/tracker-assist/src/index.ts @@ -22,6 +22,12 @@ enum CallingState { False, }; +// type IncomeMessages = +// "call_end" | +// { type: "agent_name", name: string } | +// { type: "click", x: number, y: number } | +// { x: number, y: number } + export default function(opts: Partial = {}) { const options: Options = Object.assign( { @@ -181,20 +187,24 @@ export default function(opts: Partial = {}) { document.addEventListener("click", onInteraction) }); dataConn.on('data', (data: any) => { + if (!data) { return } if (data === "call_end") { - log('Recieved call_end during call') + //console.log('receiving callend on call') onCallEnd(); return; } - // if (data && typeof data.video === 'boolean') { - // log('Recieved video toggle signal: ', data.video) - // callUI.toggleRemoteVideo(data.video) - // } - if (data && typeof data.name === 'string') { - log('Recieved name: ', data.name) + if (data.name === 'string') { + //console.log("name",data) callUI.setAssistentName(data.name); } - if (data && typeof data.x === 'number' && typeof data.y === 'number') { + if (data.type === "click" && typeof data.x === 'number' && typeof data.y === 'number') { + const el = document.elementFromPoint(data.x, data.y) + if (el instanceof HTMLElement) { + el.click() + } + return + } + if (typeof data.x === 'number' && typeof data.y === 'number') { mouse.move(data); } });