Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
9460e26
refactor: useEventlistener (with EventMap generic overrid)
JimGitFE Nov 18, 2024
845d04f
doc: updated tsDoc, match new generics & config parameter
JimGitFE Nov 18, 2024
48b9a2d
chore: backwards compatibility for DocumentEventMap type declaration …
JimGitFE Nov 18, 2024
2f458d0
typo
JimGitFE Nov 18, 2024
29e8fef
refactor: renamed CustomEventsMap to CustomEventMap + initialized dec…
JimGitFE Nov 18, 2024
419d60c
chore: reformat prettier & updated config argument on listener hook …
JimGitFE Nov 18, 2024
b4d6f8a
refactor: prev listener parameter name
JimGitFE Nov 20, 2024
d6240fd
fix: listener tests
JimGitFE Nov 20, 2024
16149c3
add: support for straight Element or RefObject refactor: renamed conf…
JimGitFE Nov 20, 2024
226f473
doc: updated demo and .md for listener hook
JimGitFE Nov 20, 2024
056d53a
chore: cleanup unnecessary
JimGitFE Nov 20, 2024
f6d5736
chore: unnecessary imports
JimGitFE Nov 20, 2024
eabc706
doc: Window is default hook element
JimGitFE Nov 21, 2024
5026898
chore: prettier reformat
JimGitFE Nov 21, 2024
c77ba5f
fix: options at removeEventListener
JimGitFE Nov 21, 2024
28b29ee
refactor: better format & git blame
JimGitFE Nov 21, 2024
be628b1
chore: unnecessary import
JimGitFE Nov 21, 2024
09b9c7e
chore: prop check & cleaner blame
JimGitFE Nov 21, 2024
62add40
typo
JimGitFE Nov 21, 2024
6f54d09
typo
JimGitFE Nov 21, 2024
bb6974e
chore: cleanup
JimGitFE Nov 21, 2024
fa3c3ee
chore: cleanup
JimGitFE Nov 21, 2024
e00ca6f
chore: improved pr diff
JimGitFE Nov 22, 2024
fb1d703
doc: demo shorter demo
JimGitFE Nov 22, 2024
5c29d2e
typo
JimGitFE Nov 22, 2024
49732cd
doc: unnecessary explanation
JimGitFE Nov 22, 2024
fdfde9b
typo
JimGitFE Nov 22, 2024
19a5671
add: accept any element (only if eventmap generic) + fix: eventmap ge…
JimGitFE Nov 22, 2024
99e36e2
add: tests for EventTarget from PR #585
JimGitFE Nov 22, 2024
5987504
add: more EventTargets & AudioNodes (template for more EventMap addit…
JimGitFE Nov 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: improved pr diff
  • Loading branch information
JimGitFE committed Nov 22, 2024
commit e00ca6f73acb8c5a920ff36f793fc099fb86b71e
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,33 @@ import { useEventListener } from './useEventListener'
export default function Component() {
// Define button ref
const buttonRef = useRef<HTMLButtonElement>(null)
const documentRef = useRef(document)
const documentRef = useRef<Document>(document)
const speechSynthesis = new SpeechSynthesis()
const speechSynthesisRef = useRef(speechSynthesis)

const onScroll = (event: Event) => {
console.log('window scrolled!', event)
}

const onClick = (event: Event) => {
console.log('button clicked!', event)
}

const onVisibilityChange = (event: Event) => {
console.log('doc visibility changed!', {
isVisible: !document.hidden,
event,
})
}

// example with window based event
useEventListener('scroll', ev => console.log('scrolled!', ev))
useEventListener('scroll', onScroll)

// example with document based event
useEventListener('visibilitychange', ev => console.log('visibility!', ev), {element: documentRef })
useEventListener('visibilitychange', onVisibilityChange, {element: documentRef })

// example with element based event
useEventListener('click', ev => console.log('clicked!', ev.pageX), { element: buttonRef })
useEventListener('click', onClick, { element: buttonRef })

// example with EventTarget element based event
useEventListener('voiceschanged', ev => console.log('speech!', ev), { element: speechSynthesisRef })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ describe('useEventListener()', () => {
useEventListener(eventName, handler)
})

expect(windowAddEventListenerSpy).toHaveBeenCalledTimes(1)
expect(windowAddEventListenerSpy).toHaveBeenCalledWith(
eventName,
expect.any(Function),
Expand Down
2 changes: 2 additions & 0 deletions packages/usehooks-ts/src/useEventListener/useEventListener.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { useEffect, useRef } from 'react'

import type { RefObject } from 'react'

import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect'

// Recommended usage: move CustomEventMap to global declaration
Expand Down