overleaf/services/web/frontend/js/shared/hooks/use-callback-handlers.js
Timothée Alby 3c01402bbd Merge pull request #7034 from overleaf/ta-pdf-detach-full
PDF Detach v2

GitOrigin-RevId: 3deb76474185f9176cde23ab32ef51b90df6e8e9
2022-04-05 12:19:23 +00:00

21 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 }
}