From e21151e98db7997e861eb47517bce47d878de4a5 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 14 Sep 2026 14:36:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(webui):=20=E6=89=8B=E5=8A=BF=E5=8D=A1?= =?UTF-8?q?=E4=B8=A5=E5=8F=AA=E4=BD=9C=E7=94=A8=E4=BA=8E=E5=91=A8/?= =?UTF-8?q?=E6=97=A5=E5=88=BB=E5=BA=A6=EF=BC=88=E6=88=91=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E7=89=88=E5=8D=A1=E5=A4=AA=E5=AE=BD=EF=BC=8C=E6=8A=8A=E6=9C=88?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E7=BF=BB=E9=A1=B5=E4=B9=9F=E4=B8=80=E8=B5=B7?= =?UTF-8?q?=E6=9D=80=E4=BA=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户原话:「**周视图**需要卡严条件」。我第一版对**所有刻度**都卡,判据写成 "这页里有没有可横向滚动的容器" —— 而月视图的外层容器本身就带 `auto`, 于是连月视图的翻页手势也一起没了(实测:栅格与标题栏起手都不翻页)。 判据必须贴在**真正有横向滚动需求的那个刻度**上,而不是"这页里有没有横滚容器"。 ## 实测(390×844,自有浏览器) 月视图(标题栏起手横滑):2026 年 9 月 → 2026 年 10 月 ✅ 可翻页 周视图(栅格里起手横滑):不翻页 ✅ 让给横向滚动 滚动容器遮罩:linear-gradient(rgba(0,0,0,0) 0px, rgb(0,…) ✅ 已生效 ⚠ 如实说明:最后一次探针里周视图的**标题取成了 null**(我的取样函数对 "2026 年 9 月 14–20 日"这种短横线格式没匹配上),null→null 不构成证据。 不过同一代码路径在上一轮探针里取到了真实标题("9 月 14–20 日")且未变化, 所以这条结论成立,但**证据强度弱于另外两条** —— 写在这里免得下次被当成硬结论。 ## 附:部署差点又失败 `/tmp` 是 tmpfs,当时已 100% 满(9.8G),而部署脚本把构建产物写到硬编码的 `/tmp/agentmail-gateway-build-*` ⇒ `no space left on device`。 我差点把"旧构建上的测量结果"当成"改动无效"。清理我自己的产物后恢复。 **根治**:脚本应尊重 `TMPDIR`(未做,`/tmp` 现仍占 91%)。 --- client/electron/src/components/CalendarView.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/electron/src/components/CalendarView.tsx b/client/electron/src/components/CalendarView.tsx index 783ca2f..a5033c9 100644 --- a/client/electron/src/components/CalendarView.tsx +++ b/client/electron/src/components/CalendarView.tsx @@ -178,7 +178,15 @@ export default function CalendarView() { const onTouchStart = (e: React.TouchEvent) => { const t = e.touches[0]; if (!t) return; - if (startsInHorizontalScroller(e.target, e.currentTarget)) { + /* + * 只在**周/日**刻度卡严(用户原话:「我觉得**周视图**需要卡严条件」)。 + * + * 我第一版对所有刻度都卡,结果连月视图的翻页手势也一起没了 —— + * 因为"日历内存在可横滚容器"在月视图里也成立(外层容器本身就带 auto)。 + * 判据必须贴在**真正有横向滚动需求的那个刻度**上,而不是"这页里有没有横滚容器"。 + */ + const needsStrict = scale === 'week' || scale === 'day'; + if (needsStrict && startsInHorizontalScroller(e.target, e.currentTarget)) { // 卡严条件:这一次手势完全不参与翻页判断 touch.current = null; return;