MCPcopy Create free account
hub / github.com/CommE2E/comm / useResolvedUserAvatar

Function useResolvedUserAvatar

lib/shared/avatar-utils.js:338–375  ·  view source on GitHub ↗
(
  userAvatarInfo: ClientAvatar,
  usernameAndFID: ?UsernameAndFID,
)

Source from the content-addressed store, hash-verified

336type FCChannelInfo = { +fcChannelID: ?string };
337
338function useResolvedUserAvatar(
339 userAvatarInfo: ClientAvatar,
340 usernameAndFID: ?UsernameAndFID,
341): ResolvedClientAvatar {
342 const ethAddress = React.useMemo(
343 () => getETHAddressForUserInfo(usernameAndFID),
344 [usernameAndFID],
345 );
346
347 const ensAvatarURI = useENSAvatar(ethAddress);
348
349 const fid = usernameAndFID?.farcasterID;
350 const farcasterAvatarURL = useFarcasterUserAvatarURL(fid);
351
352 const resolvedAvatar = React.useMemo(() => {
353 if (userAvatarInfo.type !== 'ens' && userAvatarInfo.type !== 'farcaster') {
354 return userAvatarInfo;
355 }
356
357 if (ensAvatarURI && userAvatarInfo.type === 'ens') {
358 return {
359 type: 'image',
360 uri: ensAvatarURI,
361 };
362 }
363
364 if (farcasterAvatarURL && userAvatarInfo.type === 'farcaster') {
365 return {
366 type: 'image',
367 uri: farcasterAvatarURL,
368 };
369 }
370
371 return defaultAnonymousUserEmojiAvatar;
372 }, [userAvatarInfo, ensAvatarURI, farcasterAvatarURL]);
373
374 return resolvedAvatar;
375}
376
377function useResolvedThreadAvatar(
378 threadAvatarInfo: ClientAvatar,

Callers 3

UserAvatarFunction · 0.90
useResolvedThreadAvatarFunction · 0.85

Calls 3

getETHAddressForUserInfoFunction · 0.90
useENSAvatarFunction · 0.90

Tested by

no test coverage detected