Files
LingChair/client/ui/useEventListener.js
CrescentLeaf c5d1f11017 chore: 通過 ESM 引入外部脚本
* React, ReactDOM 和 CryptoES
* 集中在 Imports.ts 中
* 向每一個 JSX 添加 React 的 import
2025-09-06 14:32:56 +08:00

20 lines
481 B
JavaScript

/**
* @callback callback
* @param { Event } event
*/
import { React } from "../Imports.ts"
/**
* 绑定事件
* @param { React.Ref } ref
* @param { String } eventName
* @param { callback } callback
*/
export default function useEventListener(ref, eventName, callback) {
React.useEffect(() => {
ref.current.addEventListener(eventName, callback)
return () => ref.current.removeEventListener(eventName, callback)
}, [ref, eventName, callback])
}