diff --git a/packages/app/src/Element/User/DisplayName.tsx b/packages/app/src/Element/User/DisplayName.tsx index 8615e2e6..204611e3 100644 --- a/packages/app/src/Element/User/DisplayName.tsx +++ b/packages/app/src/Element/User/DisplayName.tsx @@ -1,21 +1,20 @@ import "./DisplayName.css"; - import { useMemo } from "react"; import { HexKey, UserMetadata } from "@snort/system"; import { getDisplayNameOrPlaceHolder } from "@/SnortUtils"; +import { useUserProfile } from "@snort/system-react"; +import classNames from "classnames"; interface DisplayNameProps { pubkey: HexKey; user: UserMetadata | undefined; } -const DisplayName = ({ pubkey, user }: DisplayNameProps) => { - const [name, isPlaceHolder] = useMemo(() => getDisplayNameOrPlaceHolder(user, pubkey), [user, pubkey]); +const DisplayName = ({ pubkey }: DisplayNameProps) => { + const profile = useUserProfile(pubkey); + const [name, isPlaceHolder] = useMemo(() => getDisplayNameOrPlaceHolder(profile, pubkey), [profile, pubkey]); - if (isPlaceHolder) { - return {name}; - } - return name; + return {name}; }; export default DisplayName; diff --git a/packages/app/src/Element/User/UserWebsiteLink.tsx b/packages/app/src/Element/User/UserWebsiteLink.tsx index c9a23567..fadf5739 100644 --- a/packages/app/src/Element/User/UserWebsiteLink.tsx +++ b/packages/app/src/Element/User/UserWebsiteLink.tsx @@ -18,7 +18,7 @@ export function UserWebsiteLink({ user }: { user?: MetadataCache | UserMetadata if (user?.website) { return ( -
+
{tryFormatWebsite(user.website)} diff --git a/packages/app/src/Pages/Profile/ProfilePage.css b/packages/app/src/Pages/Profile/ProfilePage.css index 0f0c0f8f..5d6ff764 100644 --- a/packages/app/src/Pages/Profile/ProfilePage.css +++ b/packages/app/src/Pages/Profile/ProfilePage.css @@ -130,12 +130,6 @@ line-height: 24px; } -.profile .link { - display: flex; - align-items: center; - gap: 8px; -} - .profile .link svg { color: var(--highlight); } diff --git a/packages/app/src/Pages/Profile/ProfilePage.tsx b/packages/app/src/Pages/Profile/ProfilePage.tsx index 973985e9..c17b31e6 100644 --- a/packages/app/src/Pages/Profile/ProfilePage.tsx +++ b/packages/app/src/Pages/Profile/ProfilePage.tsx @@ -1,5 +1,5 @@ import "./ProfilePage.css"; -import { useEffect, useState } from "react"; +import { Fragment, useEffect, useState } from "react"; import { FormattedMessage } from "react-intl"; import { useLocation, useNavigate, useParams } from "react-router-dom"; import { @@ -61,6 +61,8 @@ import { useMuteList, usePinList } from "@/Hooks/useLists"; import messages from "../messages"; import FollowDistanceIndicator from "@/Element/User/FollowDistanceIndicator"; +import classNames from "classnames"; +import { ProfileLink } from "@/Element/User/ProfileLink"; interface ProfilePageProps { id?: string; @@ -156,6 +158,7 @@ export default function ProfilePage({ id: propId, state }: ProfilePageProps) { function username() { const followedByFriends = user?.pubkey ? socialGraphInstance.followedByFriends(user.pubkey) : new Set(); const MAX_FOLLOWED_BY_FRIENDS = 3; + const followedByFriendsArray = Array.from(followedByFriends).slice(0, MAX_FOLLOWED_BY_FRIENDS); return ( <>
@@ -168,18 +171,24 @@ export default function ProfilePage({ id: propId, state }: ProfilePageProps) { {user?.pubkey && } {followedByFriends.size > 0 && (
+ {followedByFriendsArray.map((a, index) => { + return ( + 0 }, "inline-block")} key={a}> + + + ); + })} - {Array.from(followedByFriends) - .slice(0, MAX_FOLLOWED_BY_FRIENDS) - .map(a => { - return ( - - - - ); - })} + {followedByFriendsArray.map((a, index) => ( + + + + + {index < followedByFriendsArray.length - 1 && ","}{" "} + + ))} {followedByFriends.size > MAX_FOLLOWED_BY_FRIENDS && ( {lnurl && ( -
setShowLnQr(true)}> +
setShowLnQr(true)}> {lnurl.name}