From 91a05fdd9da6fe3c85344fa16182aca7ecffa6cf Mon Sep 17 00:00:00 2001
From: Fabio Manganiello <fabio@manganiello.tech>
Date: Mon, 31 Mar 2025 14:06:32 +0200
Subject: [PATCH] Fixed touch events management on map

---
 frontend/src/components/MapSelectOverlay.vue | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/frontend/src/components/MapSelectOverlay.vue b/frontend/src/components/MapSelectOverlay.vue
index c5de0fc..094ec29 100644
--- a/frontend/src/components/MapSelectOverlay.vue
+++ b/frontend/src/components/MapSelectOverlay.vue
@@ -26,6 +26,7 @@ export default {
 
   data() {
     return {
+      latestTouchEvent: null as TouchEvent | null,
       overlayDragging: false,
       selectionBox: [] as number[][],
     }
@@ -90,7 +91,13 @@ export default {
       }
 
       if (event instanceof TouchEvent) {
-        return [event.touches[0].clientX, event.touches[0].clientY]
+        const touches = event.touches?.length ? event.touches : this.latestTouchEvent?.touches
+        if (!touches?.length) {
+          return []
+        }
+
+        this.latestTouchEvent = null
+        return [touches[0].clientX, touches[0].clientY]
       }
 
       return []
@@ -148,6 +155,9 @@ export default {
       }
 
       this.setSelectionBoxCoordinates(event)
+      if (event instanceof TouchEvent) {
+        this.latestTouchEvent = event
+      }
     },
 
   }