Live video on the AT Protocol
at next 24 lines 797 B view raw
1import { ProfileViewDetailed } from "@atproto/api/dist/client/types/app/bsky/actor/defs"; 2import { useEffect, useMemo } from "react"; 3import { useStore } from "store"; 4import { useCachedProfiles } from "store/hooks"; 5 6// Hack: Easy way to cache and get avatars 7export default function useAvatars(dids: string[]) { 8 const getProfiles = useStore((state) => state.getProfiles); 9 const profiles: Record<string, ProfileViewDetailed> = useCachedProfiles(); 10 11 const missingDids = useMemo( 12 () => dids.filter((did) => !(did in profiles)), 13 [dids, profiles], 14 ); 15 16 useEffect(() => { 17 if (missingDids.length > 0) { 18 console.log("Fetching profiles for DIDs:", missingDids); 19 getProfiles(missingDids).then((e) => console.log("ok", e)); 20 } 21 }, [missingDids]); 22 23 return profiles; 24}