personal web client for Bluesky
typescript solidjs bluesky atcute
at trunk 26 lines 566 B view raw
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}