From 2b1da250080a2e7b274948c371aaa5b1bf2fd341 Mon Sep 17 00:00:00 2001 From: Donavon West Date: Fri, 8 Feb 2019 13:16:04 -0500 Subject: [PATCH] a few fixes * `eventName` should be an array * add an optional `element` --- index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 8ac9831..252542e 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ import React, { useEffect, useRef } from 'react' -function useEventListener(eventName, callback) { +function useEventListener(eventName, callback, element = window) { const savedCallback = useRef() useEffect( @@ -11,16 +11,16 @@ function useEventListener(eventName, callback) { ) useEffect(function() { - if (typeof window === 'undefined') return + if (typeof element === 'undefined') return const eventListener = event => savedCallback.current(event) - window.addEventListener(eventName, eventListener) + element.addEventListener(eventName, eventListener) return function cleanup() { - return window.removeEventListener(eventName, eventListener) + return element.removeEventListener(eventName, eventListener) } - }, eventName) + }, [eventName]) } export default useEventListener