From c0fbfa77747929c34bf83a1ee2e11fbfc6577b35 Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Sat, 14 Aug 2021 07:56:57 +0100 Subject: [PATCH] Revert some of the non-essential changes of #630 (for ease of merging other branches) (#652) --- packages/rrweb/src/record/observer.ts | 59 ++++++++------------------- 1 file changed, 18 insertions(+), 41 deletions(-) diff --git a/packages/rrweb/src/record/observer.ts b/packages/rrweb/src/record/observer.ts index bd4ecca4f5..57fa0463e1 100644 --- a/packages/rrweb/src/record/observer.ts +++ b/packages/rrweb/src/record/observer.ts @@ -194,45 +194,25 @@ function initMoveObserver( }, callbackThreshold, ); - - // update position for mouse, touch, and drag events (drag event extends mouse event) - function handleUpdatePositionEvent(evt: MouseEvent | TouchEvent) { - const target = getEventTarget(evt); - const { clientX, clientY } = isTouchEvent(evt) - ? evt.changedTouches[0] - : evt; - if (!timeBaseline) { - timeBaseline = Date.now(); - } - positions.push({ - x: clientX, - y: clientY, - id: mirror.getId(target as INode), - timeOffset: Date.now() - timeBaseline, - }); - } - - // separate call for non-drag events, in case DragEvent is not defined - const updatePosition = throttle( - (evt) => { - handleUpdatePositionEvent(evt); - wrappedCb( - evt instanceof MouseEvent - ? IncrementalSource.MouseMove - : IncrementalSource.TouchMove, - ); - }, - threshold, - { - trailing: false, - }, - ); - // call for drag events, when DragEvent is defined - const updateDragPosition = throttle( + const updatePosition = throttle( (evt) => { - handleUpdatePositionEvent(evt); + const target = getEventTarget(evt); + const { clientX, clientY } = isTouchEvent(evt) + ? evt.changedTouches[0] + : evt; + if (!timeBaseline) { + timeBaseline = Date.now(); + } + positions.push({ + x: clientX, + y: clientY, + id: mirror.getId(target as INode), + timeOffset: Date.now() - timeBaseline, + }); + // it is possible DragEvent is undefined even on devices + // that support event 'drag' wrappedCb( - evt instanceof DragEvent + typeof DragEvent !== 'undefined' && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove @@ -244,13 +224,10 @@ function initMoveObserver( trailing: false, }, ); - // it is possible DragEvent is undefined even on devices - // that support event 'drag' - const dragEventDefined = typeof DragEvent !== 'undefined'; const handlers = [ on('mousemove', updatePosition, doc), on('touchmove', updatePosition, doc), - on('drag', dragEventDefined ? updateDragPosition : updatePosition, doc), + on('drag', updatePosition, doc), ]; return () => { handlers.forEach((h) => h());