Skip to content

Commit 065bde1

Browse files
koddssonkeithamus
andcommitted
Convert callback Array to a Set
This prevents callbacks being called twice or more for a given dynamic element. Co-authored-by: Keith Cirkel <keithamus@users.noreply.github.com>
1 parent 612cc18 commit 065bde1

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

src/lazy-define.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const dynamicElements = new Map<string, Array<() => void>>()
1+
const dynamicElements = new Map<string, Set<() => void>>()
22

33
const ready = new Promise<void>(resolve => {
44
if (document.readyState !== 'loading') {
@@ -57,8 +57,8 @@ const elementLoader = new MutationObserver(mutations => {
5757

5858
let first = true
5959
export function whenSeen(tagName: string, callback: () => void) {
60-
if (!dynamicElements.has(tagName)) dynamicElements.set(tagName, [])
61-
dynamicElements.get(tagName)!.push(callback)
60+
if (!dynamicElements.has(tagName)) dynamicElements.set(tagName, new Set<() => void>())
61+
dynamicElements.get(tagName)!.add(callback)
6262

6363
if (first) {
6464
scan(document.body)

0 commit comments

Comments
 (0)