Page MenuHomePhabricator

D13744.id45252.diff
No OneTemporary

D13744.id45252.diff

diff --git a/lib/shared/avatar-utils.js b/lib/shared/avatar-utils.js
--- a/lib/shared/avatar-utils.js
+++ b/lib/shared/avatar-utils.js
@@ -9,7 +9,10 @@
import { threadOtherMembers } from './thread-utils.js';
import genesis from '../facts/genesis.js';
import { useENSAvatar } from '../hooks/ens-cache.js';
-import { useFarcasterUserAvatarURL } from '../hooks/fc-cache.js';
+import {
+ useFarcasterUserAvatarURL,
+ useFarcasterChannelAvatarURL,
+} from '../hooks/fc-cache.js';
import type {
ClientAvatar,
ClientEmojiAvatar,
@@ -319,9 +322,12 @@
return getDefaultAvatar(thread.id, thread.color);
}
+type UsernameAndFID = { +username?: ?string, +farcasterID?: ?string, ... };
+type FCChannelInfo = { +fcChannelID: string };
+
function useResolvedUserAvatar(
userAvatarInfo: ClientAvatar,
- usernameAndFID: ?{ +username?: ?string, +farcasterID?: ?string, ... },
+ usernameAndFID: ?UsernameAndFID,
): ResolvedClientAvatar {
const ethAddress = React.useMemo(
() => getETHAddressForUserInfo(usernameAndFID),
@@ -338,12 +344,14 @@
return userAvatarInfo;
}
- if (ensAvatarURI) {
+ if (ensAvatarURI && userAvatarInfo.type === 'ens') {
return {
type: 'image',
uri: ensAvatarURI,
};
- } else if (farcasterAvatarURL) {
+ }
+
+ if (farcasterAvatarURL && userAvatarInfo.type === 'farcaster') {
return {
type: 'image',
uri: farcasterAvatarURL,
@@ -358,13 +366,27 @@
function useResolvedThreadAvatar(
threadAvatarInfo: ClientAvatar,
- displayUser: ?{ +username?: ?string, +farcasterID?: ?string, ... },
+ userOrChannel: ?UsernameAndFID | ?FCChannelInfo,
): ResolvedClientAvatar {
+ let displayUser = null;
+ let fcChannelID = null;
+
+ if (userOrChannel?.username || userOrChannel?.farcasterID) {
+ displayUser = userOrChannel;
+ } else if (
+ userOrChannel?.fcChannelID &&
+ typeof userOrChannel.fcChannelID === 'string'
+ ) {
+ fcChannelID = userOrChannel.fcChannelID;
+ }
+
const resolvedUserAvatar = useResolvedUserAvatar(
threadAvatarInfo,
displayUser,
);
+ const farcasterAvatarURL = useFarcasterChannelAvatarURL(fcChannelID);
+
if (
threadAvatarInfo.type !== 'ens' &&
threadAvatarInfo.type !== 'farcaster'
@@ -372,6 +394,13 @@
return threadAvatarInfo;
}
+ if (farcasterAvatarURL) {
+ return {
+ type: 'image',
+ uri: farcasterAvatarURL,
+ };
+ }
+
return resolvedUserAvatar;
}

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 19, 9:01 AM (3 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2322181
Default Alt Text
D13744.id45252.diff (2 KB)

Event Timeline