mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-27 11:01:56 +02:00
22 lines
519 B
JavaScript
22 lines
519 B
JavaScript
import { useCallback, useRef } from 'react'
|
|
|
|
export default function useCallbackHandlers() {
|
|
const handlersRef = useRef(new Set())
|
|
|
|
const addHandler = useCallback(handler => {
|
|
handlersRef.current.add(handler)
|
|
}, [])
|
|
|
|
const deleteHandler = useCallback(handler => {
|
|
handlersRef.current.delete(handler)
|
|
}, [])
|
|
|
|
const callHandlers = useCallback((...args) => {
|
|
for (const handler of handlersRef.current) {
|
|
handler(...args)
|
|
}
|
|
}, [])
|
|
|
|
return { addHandler, deleteHandler, callHandlers }
|
|
}
|