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); }} />