Files
LingChair/client/ui/useEventListener.ts
2025-09-07 21:53:53 +08:00

9 lines
389 B
TypeScript

import * as React from 'react'
export default function useEventListener<T extends HTMLElement | null>(ref: React.MutableRefObject<T>, eventName: string, callback: (event: Event) => void) {
React.useEffect(() => {
ref.current!.addEventListener(eventName, callback)
return () => ref.current!.removeEventListener(eventName, callback)
}, [ref, eventName, callback])
}