Remove duplicated logic from PointerInteraction

This commit is contained in:
Andreas Hocevar
2022-06-16 11:26:28 +02:00
parent f99dc1e9ec
commit 134ec9c8d0
3 changed files with 49 additions and 52 deletions
+2 -34
View File
@@ -3,7 +3,6 @@
*/
import Interaction from './Interaction.js';
import MapBrowserEventType from '../MapBrowserEventType.js';
import {getValues} from '../obj.js';
/**
* @typedef {Object} Options
@@ -80,12 +79,6 @@ class PointerInteraction extends Interaction {
*/
this.handlingDownUpSequence = false;
/**
* @type {!Object<string, PointerEvent>}
* @private
*/
this.trackedPointers_ = {};
/**
* @type {Array<PointerEvent>}
* @protected
@@ -189,19 +182,8 @@ class PointerInteraction extends Interaction {
* @private
*/
updateTrackedPointers_(mapBrowserEvent) {
if (isPointerDraggingEvent(mapBrowserEvent)) {
const event = mapBrowserEvent.originalEvent;
const id = event.pointerId.toString();
if (mapBrowserEvent.type == MapBrowserEventType.POINTERUP) {
delete this.trackedPointers_[id];
} else if (mapBrowserEvent.type == MapBrowserEventType.POINTERDOWN) {
this.trackedPointers_[id] = event;
} else if (id in this.trackedPointers_) {
// update only when there was a pointerdown event for this pointer
this.trackedPointers_[id] = event;
}
this.targetPointers = getValues(this.trackedPointers_);
if (mapBrowserEvent.activePointers) {
this.targetPointers = mapBrowserEvent.activePointers;
}
}
}
@@ -221,18 +203,4 @@ export function centroid(pointerEvents) {
return [clientX / length, clientY / length];
}
/**
* @param {import("../MapBrowserEvent.js").default} mapBrowserEvent Event.
* @return {boolean} Whether the event is a pointerdown, pointerdrag
* or pointerup event.
*/
function isPointerDraggingEvent(mapBrowserEvent) {
const type = mapBrowserEvent.type;
return (
type === MapBrowserEventType.POINTERDOWN ||
type === MapBrowserEventType.POINTERDRAG ||
type === MapBrowserEventType.POINTERUP
);
}
export default PointerInteraction;