fix(webui): 手势卡严只作用于周/日刻度(我第一版卡太宽,把月视图翻页也一起杀了)

用户原话:「**周视图**需要卡严条件」。我第一版对**所有刻度**都卡,判据写成
"这页里有没有可横向滚动的容器" —— 而月视图的外层容器本身就带 `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%)。
This commit is contained in:
2026-09-14 14:36:49 +08:00
parent 1717863c87
commit e21151e98d

View File

@ -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;