From e4db346d7d215ca5be4cc05076c23afef7526d0c Mon Sep 17 00:00:00 2001
From: sleeeeeeeeeeeepy <7nqhwwwncx@privaterelay.appleid.com>
Date: Tue, 11 Aug 2026 23:49:28 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E9=97=AE=E7=AD=94=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E5=B7=B2=E8=A7=A3=E5=86=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/package-lock.json | 18 +-------
.../BuildingPopover/BuildingPopover.tsx | 16 +++++--
.../src/components/ChatWidget/ChatWidget.tsx | 7 +++
functions/api/chat.js | 46 +++++++++++++++----
4 files changed, 55 insertions(+), 32 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index db9a4ea..50ff9f5 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -333,8 +333,6 @@
"integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "peer": true,
"dependencies": {
"@emnapi/wasi-threads": "1.2.3",
"tslib": "^2.4.0"
@@ -346,20 +344,6 @@
"integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz",
- "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
"dependencies": {
"tslib": "^2.4.0"
}
@@ -4053,4 +4037,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/src/components/BuildingPopover/BuildingPopover.tsx b/frontend/src/components/BuildingPopover/BuildingPopover.tsx
index 6a13289..6578816 100644
--- a/frontend/src/components/BuildingPopover/BuildingPopover.tsx
+++ b/frontend/src/components/BuildingPopover/BuildingPopover.tsx
@@ -181,8 +181,15 @@ export function BuildingPopover({
const el = popoverRef.current;
if (!el) return;
const onWheel = (e: WheelEvent) => { e.stopPropagation(); };
- // 拦截触摸事件防止穿透到地图(原生事件 + passive 不阻止滚动)
- const stopTouch = (e: TouchEvent) => { e.stopPropagation(); };
+
+ const stopTouch = (e: TouchEvent) => {
+ const target = e.target as HTMLElement;
+ if (target.closest('input, textarea, button, [role="button"]')) {
+ return;
+ }
+ e.stopPropagation();
+ };
+
el.addEventListener('wheel', onWheel);
el.addEventListener('touchstart', stopTouch, { passive: true });
el.addEventListener('touchmove', stopTouch, { passive: true });
@@ -489,12 +496,11 @@ export function BuildingPopover({
setChatInput(e.target.value)}
onKeyDown={e => { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); sendQuestion(); } }}
onFocus={() => { inputBlurGuard.current = false; }}
- onBlur={() => { inputBlurGuard.current = true; setTimeout(() => { inputBlurGuard.current = false; }, 300); }}
- disabled={chatLoading} />
+ onBlur={() => { inputBlurGuard.current = true; setTimeout(() => { inputBlurGuard.current = false; }, 300); }} />