Function useEventEmitter

Used to register event handlers for renderable components.

const eventHandler = useEventEmitter()

The generator is an async function that process and returns data required by your components, such as geometry for a mesh.

useEffect(() => {
let unregister: (() => void) | null = null
if (eventHandler && ref.current) {
const handlers: Record<string, EventEmitterCallback> = {}

if (onPointerClick) handlers.click = onPointerClick
if (onPointerEnter) handlers.enter = onPointerEnter
if (onPointerLeave) handlers.leave = onPointerLeave
if (onPointerMove) handlers.move = onPointerMove

if (Object.keys(handlers).length) {
unregister = eventHandler.register(ref.current, handlers, id)
}
}

return () => {
if (unregister) unregister()
}
}, [eventHandler, onPointerClick, onPointerEnter, onPointerLeave, onPointerMove])