Files
MailUI4Agents/client
JianFeeeee f5d05755b7 fix(webui): 窄屏两处 —— 收起补反向 morph、编辑态不再隐藏底部导航
用户:「收起没有动画,且输入框弹出后,底部导航栏会消失,再次点击界面导航才会出现」

① 收起没动画:打开有 morph、收起是瞬间卸载(不对称)。补反向 morph:
   打开时把球的矩形存进 originRef(球在框打开时不在 DOM 上,收起草稿时取不到),
   收起时从当前形状缩回球的位置/大小(160ms),**播完再卸载**(先卸载就没得播)。
   finished 被取消时也会 reject,两种情况都落到"收起"。

② 底部导航消失:测量结果是 nav 的 rect = 0,0,0,0,即 **display:none**,不是被挤出去——
   根因是 `.form-editing .narrow-nav { display: none }` 撞上"回复框展开即自动聚焦 textarea"
   (form-editing 由 main.tsx 在任何输入框获焦时挂上)⇒ 一弹框导航就消失,点到别处才回来。
   而这条隐藏已经没必要:viewport 声明了 `interactive-widget=resizes-content`,键盘弹出时
   浏览器会重排布局,导航自然落在键盘上方。已删掉该隐藏。
   顺带:详情/列表两个窄屏根节点补 min-h-0(flex 子项默认不可压缩,回复框一撑会把导航顶出可视区)。

判据 +4(编辑态不隐藏导航、viewport 声明 resizes-content、两个根节点带 min-h-0、收起有反向
morph 且先播完再卸载)。变异:抽掉 min-h-0 → 红;收起改回瞬间卸载 → 红;把 display:none
放回去 → 红。
★ 一处判据自身的坑:判断"还有没有那条隐藏规则"必须用**剥注释版**——我第一版用原文判,
被我刚写的那段解释性注释(里面原样引用了那条规则)判红,与 read.mjs 里记的同一形态。

窄屏(420x820,真实邮件)实测:初始/开信/回复框弹出并聚焦(form-editing)/收起后 ——
底部导航高度都是 51px 且在视口内;收起时框上有 160ms 动画。
2026-09-15 08:45:54 +08:00
..