mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-13 16:33:30 -07:00
22 lines
543 B
JavaScript
22 lines
543 B
JavaScript
const lifecycleByElement = new WeakMap();
|
|
const observer = new IntersectionObserver(
|
|
(entries) => {
|
|
for (const entry of entries) {
|
|
const lifecycle = lifecycleByElement.get(entry.target);
|
|
lifecycle?.[entry.isIntersecting ? "show" : "hide"]();
|
|
}
|
|
},
|
|
{
|
|
rootMargin: "400px 0px",
|
|
},
|
|
);
|
|
|
|
/**
|
|
* @param {Element} element
|
|
* @param {{ show: () => void, hide: () => void }} lifecycle
|
|
*/
|
|
export function onChartVisibility(element, lifecycle) {
|
|
lifecycleByElement.set(element, lifecycle);
|
|
observer.observe(element);
|
|
}
|