refactor: extract drop indicator target helpers

This commit is contained in:
lix-2026
2026-05-25 08:29:19 +08:00
parent c90499b16e
commit f33807eacc
3 changed files with 38 additions and 14 deletions
@@ -139,6 +139,32 @@ pub(crate) fn hovered_block_from_target(
block_state_from_index(index)
}
pub(crate) fn drop_indicator_from_target(
target: EventTarget,
client_y: i32,
handle_selector: &str,
) -> Option<DropIndicatorState> {
let root = editor_root_element()?;
let hovered = hovered_block_from_target(target, &root, handle_selector)?;
let block = root.children().item(hovered.index as u32)?;
let stage = editor_stage_element()?;
Some(drop_indicator_from_block_rects(
hovered.index,
&block,
&stage,
client_y,
))
}
pub(crate) fn drop_indicator_from_point(
client_x: i32,
client_y: i32,
handle_selector: &str,
) -> Option<DropIndicatorState> {
let target = event_target_from_point(client_x, client_y)?;
drop_indicator_from_target(target, client_y, handle_selector)
}
pub(crate) fn block_state_from_index(index: usize) -> Option<HoveredBlockState> {
let root = editor_root_element()?;
let stage = editor_stage_element()?;