Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
747 B · 25 lines
TSX
1234567891011121314151617181920212223242526// Cache and batch-fetch profile data for a list of DIDs.import { ProfileViewDetailed } from "@atproto/api/dist/client/types/app/bsky/actor/defs";import { useEffect, useMemo } from "react";import { useStore } from "../lib/store";import { useCachedProfiles } from "../lib/store/hooks";
export default function useAvatars( dids: string[],): Record<string, ProfileViewDetailed> { const getProfiles = useStore((state) => state.getProfiles); const profiles = useCachedProfiles();
const missingDids = useMemo( () => dids.filter((did) => !(did in profiles)), [dids, profiles], );
useEffect(() => { if (missingDids.length > 0) { getProfiles(missingDids); } }, [missingDids, getProfiles]);
return profiles;}