Skip to content

Commit 807b8df

Browse files
fix: observer pool for hooks (#153)
By adding observer to the pool when it's created rather than we have an element to observe
1 parent a31317d commit 807b8df

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/observer.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,18 @@ export function callback(
6666
export function createObserver(
6767
options: IntersectionObserverInit
6868
): IntersectionObserver {
69-
return getPooled(options) || new IntersectionObserver(callback, options);
70-
}
69+
const pooled = getPooled(options);
7170

72-
export function observeElement(element: Instance) {
73-
if (!observerElementsMap.has(element.observer)) {
74-
observerElementsMap.set(element.observer, new Set<Instance>());
71+
if (pooled) {
72+
return pooled;
7573
}
7674

75+
const observer = new IntersectionObserver(callback, options);
76+
observerElementsMap.set(observer, new Set<Instance>());
77+
return observer;
78+
}
79+
80+
export function observeElement(element: Instance) {
7781
observerElementsMap.get(element.observer)?.add(element);
7882
element.observer!.observe(element.target!);
7983
}

0 commit comments

Comments
 (0)