mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-24 15:47:08 +00:00
Switch to vite and preact
This commit is contained in:
21
src/app/hooks/useOnHover.ts
Normal file
21
src/app/hooks/useOnHover.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { useEffect } from 'preact/hooks'
|
||||
|
||||
export function useOnHover(element: HTMLElement, hover: (x: number | undefined, y: number | undefined) => unknown) {
|
||||
if (!element) return
|
||||
|
||||
const onMouseMove = (e: MouseEvent) => {
|
||||
hover(e.offsetX, e.offsetY)
|
||||
}
|
||||
const onMouseLeave = () => {
|
||||
hover(undefined, undefined)
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
element.addEventListener('mousemove', onMouseMove)
|
||||
element.addEventListener('mouseleave', onMouseLeave)
|
||||
return () => {
|
||||
element.removeEventListener('mousemove', onMouseMove)
|
||||
element.removeEventListener('mouseleave', onMouseLeave)
|
||||
}
|
||||
}, [element])
|
||||
}
|
||||
Reference in New Issue
Block a user