···99declare var blueAPI: import("./api/bluesky_api.js").BlueskyAPI;
1010declare var appView: import("./api/bluesky_api.js").BlueskyAPI;
1111declare var api: import("./api/bluesky_api.js").BlueskyAPI;
1212-declare var avatarPreloader: IntersectionObserver;
13121413type json = Record<string, any>;
1514
+1
src/utils.ts
···11export * from './utils/at_uri.js';
22+export * from './utils/avatar_preloader.js';
23export * from './utils/text.js';
3445export function $id<T>(name: string, type?: new (...args: any[]) => T): T {
+15
src/utils/avatar_preloader.ts
···11+function buildAvatarPreloader(): IntersectionObserver {
22+ return new IntersectionObserver((entries, observer) => {
33+ for (const entry of entries) {
44+ if (entry.isIntersecting) {
55+ const img = entry.target;
66+ img.removeAttribute('lazy');
77+ observer.unobserve(img);
88+ }
99+ }
1010+ }, {
1111+ rootMargin: '1000px 0px'
1212+ });
1313+}
1414+1515+export let avatarPreloader = buildAvatarPreloader();