MCPcopy
hub / github.com/codeaashu/claude-code / dispatchHover

Function dispatchHover

src/ink/hit-test.ts:102–130  ·  view source on GitHub ↗
(
  root: DOMElement,
  col: number,
  row: number,
  hovered: Set<DOMElement>,
)

Source from the content-addressed store, hash-verified

100 * non-rendered gap or off the root rect).
101 */
102export function dispatchHover(
103 root: DOMElement,
104 col: number,
105 row: number,
106 hovered: Set<DOMElement>,
107): void {
108 const next = new Set<DOMElement>()
109 let node: DOMElement | undefined = hitTest(root, col, row) ?? undefined
110 while (node) {
111 const h = node._eventHandlers as EventHandlerProps | undefined
112 if (h?.onMouseEnter || h?.onMouseLeave) next.add(node)
113 node = node.parentNode
114 }
115 for (const old of hovered) {
116 if (!next.has(old)) {
117 hovered.delete(old)
118 // Skip handlers on detached nodes (removed between mouse events)
119 if (old.parentNode) {
120 ;(old._eventHandlers as EventHandlerProps | undefined)?.onMouseLeave?.()
121 }
122 }
123 }
124 for (const n of next) {
125 if (!hovered.has(n)) {
126 hovered.add(n)
127 ;(n._eventHandlers as EventHandlerProps | undefined)?.onMouseEnter?.()
128 }
129 }
130}
131

Callers 1

dispatchHoverMethod · 0.85

Calls 4

hitTestFunction · 0.85
deleteMethod · 0.65
addMethod · 0.45
hasMethod · 0.45

Tested by

no test coverage detected