personal web client for Bluesky
typescript
solidjs
bluesky
atcute
1import { batch } from 'solid-js';
2
3export const intersectionCallback: IntersectionObserverCallback = (entries, observer) => {
4 batch(() => {
5 for (let idx = 0, len = entries.length; idx < len; idx++) {
6 const entry = entries[idx];
7
8 const target = entry.target as any;
9 const listener = target.$onintersect;
10
11 if (listener) {
12 listener(entry);
13 } else {
14 observer.unobserve(target);
15 }
16 }
17 });
18};
19
20declare module 'solid-js' {
21 namespace JSX {
22 interface ExplicitProperties {
23 $onintersect: (entry: IntersectionObserverEntry) => void;
24 }
25 }
26}