From da6d2eef44c2405b7e58ddab043f9657062f9fa4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Sep 2025 08:33:01 +0000 Subject: [PATCH 1/3] Initial plan From 2e3a6968ceae64ae2d400c1616c2d4c083c42686 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Sep 2025 08:36:53 +0000 Subject: [PATCH 2/3] Initial analysis of mobile search keyboard issue Co-authored-by: tacruc <402891+tacruc@users.noreply.github.com> --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b529145ea..b2197034b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,8 +60,8 @@ "@types/leaflet": "^1.9.20" }, "engines": { - "node": "^20.0.0", - "npm": "^10.0.0" + "node": "^22.0.0", + "npm": "^10.5.0" } }, "node_modules/@ampproject/remapping": { From e206d16af392e537fd661682073d11c858c56143 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Sep 2025 08:40:04 +0000 Subject: [PATCH 3/3] Fix mobile search bar keyboard issue by adding mobile-specific input attributes and touch handling Co-authored-by: tacruc <402891+tacruc@users.noreply.github.com> --- src/components/map/SearchField.vue | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/components/map/SearchField.vue b/src/components/map/SearchField.vue index 9d890daf4..26984e21f 100644 --- a/src/components/map/SearchField.vue +++ b/src/components/map/SearchField.vue @@ -131,12 +131,35 @@ export default { input.value = this.mySelectedOption.value || this.mySelectedOption.label } }) + + // Add mobile-specific attributes to ensure virtual keyboard shows + input.setAttribute('inputmode', 'search') + input.setAttribute('enterkeyhint', 'search') + input.setAttribute('autocorrect', 'off') + input.setAttribute('autocapitalize', 'off') + + // Add touch event handling for mobile devices + const container = this.$refs.select.$el + container.addEventListener('touchstart', () => { + // Small delay to ensure DOM is ready + setTimeout(() => { + input.focus() + }, 50) + }, { passive: true }) }, methods: { focus() { const input = this.$refs.select.$el.querySelector('input') - input.focus() + // For mobile devices, we need to focus immediately and trigger click + if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { + // Mobile device: trigger both focus and click to ensure virtual keyboard shows + input.focus() + input.click() + } else { + // Desktop: just focus + input.focus() + } // this does not work... /* if (this.mySelectedOption) {