import { useState, useEffect } from 'react'; import { createHook } from 'hookleton'; const useMousePosition = createHook(() => { const [position, setPosition] = useState({ x: null, y: null }); const handleMouseMove = e => setPosition({ x: e.pageX, y: e.pageY }); useEffect(() => { window.addEventListener('mousemove', handleMouseMove); return () => window.removeEventListener('mousemove', handleMouseMove); }, []); return [position]; }); const MouseHost = () => (useMousePosition.use(), null); const Mouse = () => { const [mousePosition] = useMousePosition(); return (
|
|
))}