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:
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user