diff --git a/src/components/SharedComponents/InlineUser/InlineUserBase.js b/src/components/SharedComponents/InlineUser/InlineUserBase.tsx similarity index 75% rename from src/components/SharedComponents/InlineUser/InlineUserBase.js rename to src/components/SharedComponents/InlineUser/InlineUserBase.tsx index 94756ea81..333883dd9 100644 --- a/src/components/SharedComponents/InlineUser/InlineUserBase.js +++ b/src/components/SharedComponents/InlineUser/InlineUserBase.tsx @@ -1,5 +1,3 @@ -// @flow - import { useNavigation } from "@react-navigation/native"; // Directly imported, not from index.js to avoid circular dependency import INatIcon from "components/SharedComponents/INatIcon"; @@ -8,29 +6,23 @@ import UserIcon from "components/SharedComponents/UserIcon"; import { Pressable, View } from "components/styledComponents"; -import type { Node } from "react"; -import React from "react"; +import React, { PropsWithChildren } from "react"; import { useTranslation } from "react-i18next"; +import type { TextProps } from "react-native"; import User from "realmModels/User"; +import useCurrentUser from "sharedHooks/useCurrentUser"; -type Props = { +interface Props extends PropsWithChildren { user: { - id: number, - icon_url?: string, - login: string - }, - isConnected: boolean, - TextComponent: ( props: { - className?: string, - numberOfLines?: number, - ellipsizeMode?: string, - selectable?: boolean, - maxFontSizeMultiplier?: number, - children?: React$Node, // eslint-disable-line no-undef -} ) => React$Node, // eslint-disable-line no-undef - testID: string, - useBigIcon?: boolean -}; + id: number; + icon_url?: string; + login: string; + }; + isConnected: boolean; + TextComponent: React.FC; + testID: string; + useBigIcon?: boolean; +} const InlineUserBase = ( { user, @@ -38,15 +30,17 @@ const InlineUserBase = ( { TextComponent, testID, useBigIcon = false -}: Props ): Node => { +}: Props ) => { const navigation = useNavigation(); const userImgUri = User.uri( user ); const userHandle = user?.login; + const currentUser = useCurrentUser(); + const isCurrentUser = user?.id === currentUser?.id; const { t } = useTranslation( ); const renderUserIcon = () => { - if ( !userImgUri || !isConnected ) { + if ( !userImgUri || ( !isConnected && !isCurrentUser ) ) { return ( { const mockUser = factory( "RemoteUser" ); const mockUserWithoutImage = factory( "RemoteUser", { icon_url: null } ); -const snapshotUser = { login: "some_login", icon_url: "some_icon_url" }; +const snapshotUser = { login: "some_login", icon_url: "some_icon_url", id: 1 }; const snapshotUserWithoutImage = { login: "some_login", icon_url: null }; jest.mock(