fix: improve useInViewObserver hook to trigger when observer is already in view on mount (#18446)

This commit is contained in:
Cao Hoang
2025-01-02 23:58:40 +00:00
committed by GitHub
parent c7a797c0e0
commit 22f92f1ee3
+6 -1
View File
@@ -14,6 +14,11 @@ export const useInViewObserver = (onInViewCallback: () => void, root?: Element |
return;
}
if (node && node.getBoundingClientRect().top < window.innerHeight) {
// Trigger callback immediately if element is already in view on mount
onInViewCallback();
}
let observer: IntersectionObserver;
if (node && node.parentElement) {
observer = new IntersectionObserver(
@@ -35,7 +40,7 @@ export const useInViewObserver = (onInViewCallback: () => void, root?: Element |
observer.disconnect();
}
};
}, [node]);
}, [onInViewCallback, node]);
return {
ref: setRef,