diff --git a/lib/shared/id-utils.js b/lib/shared/id-utils.js --- a/lib/shared/id-utils.js +++ b/lib/shared/id-utils.js @@ -163,6 +163,10 @@ return userID.replace(farcasterUserIDPrefix, ''); } +function isFarcasterUserID(userID: string): boolean { + return userID.startsWith(farcasterUserIDPrefix); +} + function farcasterPersonalConversationID( user1FID: number | string, user2FID: number | string, @@ -192,4 +196,5 @@ extractFIDFromUserID, farcasterPersonalConversationID, getFIDFromUserID, + isFarcasterUserID, }; diff --git a/lib/shared/relationship-utils.js b/lib/shared/relationship-utils.js --- a/lib/shared/relationship-utils.js +++ b/lib/shared/relationship-utils.js @@ -2,6 +2,7 @@ import invariant from 'invariant'; +import { isFarcasterUserID } from './id-utils.js'; import { type RelationshipButton, type UserRelationshipStatus, @@ -27,8 +28,11 @@ } function getAvailableRelationshipButtons( - userInfo: UserInfo, + userInfo: ?UserInfo, ): RelationshipButton[] { + if (!userInfo || isFarcasterUserID(userInfo.id)) { + return []; + } const relationship = userInfo.relationshipStatus; if (relationship === userRelationshipStatus.FRIEND) { diff --git a/native/chat/settings/thread-settings-edit-relationship.react.js b/native/chat/settings/thread-settings-edit-relationship.react.js --- a/native/chat/settings/thread-settings-edit-relationship.react.js +++ b/native/chat/settings/thread-settings-edit-relationship.react.js @@ -12,6 +12,7 @@ getRelationshipDispatchAction, } from 'lib/shared/relationship-utils.js'; import { getSingleOtherUser } from 'lib/shared/thread-utils.js'; +import { stringForUserExplicit } from 'lib/shared/user-utils.js'; import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js'; import { type TraditionalRelationshipAction, @@ -88,8 +89,7 @@ const { panelIosHighlightUnderlay } = colors; const styles = useStyles(unboundStyles); - const otherUserInfoUsername = otherUserInfo.username; - invariant(otherUserInfoUsername, 'Other user username should be specified'); + const otherUserInfoUsername = stringForUserExplicit(otherUserInfo); const relationshipButtonText = React.useMemo( () =>