You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
622 B
19 lines
622 B
import { useEffect, useRef } from 'react'; |
|
export function useEventHandlers(element, eventHandlers) { |
|
const eventHandlersRef = useRef(); |
|
useEffect(function addEventHandlers() { |
|
if (eventHandlers != null) { |
|
element.instance.on(eventHandlers); |
|
} |
|
eventHandlersRef.current = eventHandlers; |
|
return function removeEventHandlers() { |
|
if (eventHandlersRef.current != null) { |
|
element.instance.off(eventHandlersRef.current); |
|
} |
|
eventHandlersRef.current = null; |
|
}; |
|
}, [ |
|
element, |
|
eventHandlers |
|
]); |
|
}
|
|
|