refactor: extract block menu overlay layout

This commit is contained in:
lix-2026
2026-05-25 02:50:31 +08:00
parent 630a7870e7
commit 3b8445ffab
6 changed files with 114 additions and 55 deletions
@@ -115,3 +115,8 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 已验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml`、wasm release build、`wasm-bindgen``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task489-block-menu-delete-undo-smoke.js``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task488-local-attachment-link-delete-undo-smoke.js`
- 未完成:`sync_editor_overlay_state` / `try_sync_editor_overlay_state`、block menu signal 和拖拽重排行为仍在 `lib.rs`,后续应继续按更窄 helper 拆分。
- 2026-05-25Batch F 计划继续采用独立 worktree 候选 patchWorker A 负责把 `hover_anchor_top``hover_anchor_transform``block_menu_layout` 或其几何计算部分迁入 `editor_runtime/block_menu_overlay.rs`,不迁拖拽 hit-test、signal 编排或 block menu 行为。
- 2026-05-25:采纳并复核 Batch F Worker A 候选 patch:新增 `editor_runtime/block_menu_overlay.rs`,迁出 `hover_anchor_top``hover_anchor_transform``block_menu_layout` 的纯几何计算;`lib.rs` 仍保留 `editor_stage_element` DOM 查询、拖拽 hit-test、signal 编排和 block menu 行为。
- Reasonix run`reasonix-2026-05-24T18-39-34-366Z-631ed269`,已读取 Hindsight recall、`process-handoff.md/json``result.json`、diff 与验证摘要;Reasonix 自报 smoke 挂起,Codex 不采信该部分。
- 修改:`rust/spikes/leptos-tiptap-spike/src/editor_runtime/block_menu_overlay.rs``rust/spikes/leptos-tiptap-spike/src/editor_runtime/mod.rs``rust/spikes/leptos-tiptap-spike/src/lib.rs`、generated island wasm/js/d.ts。
- 已验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml`、wasm release build、`wasm-bindgen``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task489-block-menu-delete-undo-smoke.js``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task488-local-attachment-link-delete-undo-smoke.js`
- 未完成:`pointer_in_handle_corridor``drop_indicator_from_target` / `drop_indicator_from_point``sync_editor_overlay_state` / `try_sync_editor_overlay_state` 仍在 `lib.rs`