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 动画。