Files
mnote/bugs/05-editor-mainline/done/5-31-side-pane-slash-overlay-isolation-v1.md
lix-2026 eba1010191 fix local office resource editing
- add local-folder OnlyOffice sign/callback writeback and edit-tab handling

- align main resource tabs, attachment edit menu, slash isolation, and filetree context behavior

- record Sidex/Hermes gap reviews and Reasonix task checklists
2026-05-21 05:40:06 +08:00

1.7 KiB
Raw Permalink Blame History

Checklist: Side Pane Slash Overlay Isolation

目标

主编辑器 slash 菜单不得在侧栏/secondary pane 中出现;不支持侧栏打开资源时不得留下会响应 slash 的侧栏 editor host。

允许修改

  • rust/crates/mnote-web/src/routes/web_shell.rs
  • 必要时 rust/spikes/leptos-tiptap-spike/src/lib.rs
  • 相关测试 / smoke

禁止事项

  • 不禁用主编辑器 slash 菜单。
  • 不删除侧栏页面编辑能力。
  • 不用全局 CSS 隐藏全部 slash menu 作为表面修复。

待办

  • positionSlashMenuForRoot 只查当前 root 内菜单;不能 fallback 到全局第一个 slash menu。
  • activeEditorRootForSlashMenu 优先选择含有 selection/focus 的可见 rootsecondary hidden/unsupported root 不参与。
  • 打开 unsupported side target 时彻底卸载 secondary view 并清理遗留 slash overlay。
  • 为 primary + secondary 同时存在时的 slash 隔离补测试。
  • 若 leptos runtime 自身生成全局 overlay,需要给 overlay 绑定 data-pane-role 或 editor host id。

本轮执行记录

  • 代码:web_shell.rs 增加 setSlashMenuInactive / hideSlashMenusOutsideRoot,非当前 selection/focus root 的 slash menu 会被标记 data-mnote-slash-inactive 并隐藏。
  • 浏览器验证:tmp/bug-20260521-workbench-browser-verify/result-slash.jsonprimaryMenus=1secondaryMenus=0inactiveSecondary=1,截图 05-slash-primary-secondary-isolation.png

验收命令

cd /mnt/Data1T/mnote/rust
cargo test -p mnote-web document_shell_runtime_renders_resource_tab_runtime -- --test-threads=1
cargo test -p mnote-web document_shell_runtime_positions_slash_menu_per_editor_host -- --test-threads=1