From 479446d948e8836a50351c1b4a5607b7fb67baa8 Mon Sep 17 00:00:00 2001 From: hzrd149 Date: Thu, 9 Mar 2023 16:08:36 -0600 Subject: [PATCH] fix bug with users only setting display_name --- src/helpers/user-metadata.ts | 9 +- .../user/components/user-profile-menu.tsx | 88 ++++++++++++------- 2 files changed, 60 insertions(+), 37 deletions(-) diff --git a/src/helpers/user-metadata.ts b/src/helpers/user-metadata.ts index 7cd8acb3c..5176437fa 100644 --- a/src/helpers/user-metadata.ts +++ b/src/helpers/user-metadata.ts @@ -24,12 +24,9 @@ export function parseKind0Event(event: NostrEvent): Kind0ParsedContent { } export function getUserDisplayName(metadata: Kind0ParsedContent | undefined, pubkey: string) { - if (metadata?.display_name && metadata?.name) { - return metadata.display_name; - } else if (metadata?.name) { - return metadata.name; - } - return truncatedId(normalizeToBech32(pubkey, Bech32Prefix.Pubkey) ?? pubkey); + return ( + metadata?.display_name || metadata?.name || truncatedId(normalizeToBech32(pubkey, Bech32Prefix.Pubkey) ?? pubkey) + ); } export function fixWebsiteUrl(website: string) { diff --git a/src/views/user/components/user-profile-menu.tsx b/src/views/user/components/user-profile-menu.tsx index 90976221e..d1e669f86 100644 --- a/src/views/user/components/user-profile-menu.tsx +++ b/src/views/user/components/user-profile-menu.tsx @@ -1,7 +1,16 @@ -import { Avatar, MenuItem } from "@chakra-ui/react"; +import { + Avatar, + MenuItem, + Modal, + ModalBody, + ModalCloseButton, + ModalContent, + ModalOverlay, + useDisclosure, +} from "@chakra-ui/react"; import { MenuIconButton, MenuIconButtonProps } from "../../../components/menu-icon-button"; -import { IMAGE_ICONS, SpyIcon } from "../../../components/icons"; +import { CodeIcon, IMAGE_ICONS, SpyIcon } from "../../../components/icons"; import { Bech32Prefix, normalizeToBech32 } from "../../../helpers/nip19"; import accountService from "../../../services/account"; import { useUserMetadata } from "../../../hooks/use-user-metadata"; @@ -13,6 +22,7 @@ export const UserProfileMenu = ({ pubkey, ...props }: { pubkey: string } & Omit< const npub = normalizeToBech32(pubkey, Bech32Prefix.Pubkey); const metadata = useUserMetadata(pubkey); const userRelays = useUserRelays(pubkey); + const infoModal = useDisclosure(); const loginAsUser = () => { const readRelays = userRelays?.relays.filter((r) => r.mode === RelayMode.READ).map((r) => r.url) ?? []; @@ -27,34 +37,50 @@ export const UserProfileMenu = ({ pubkey, ...props }: { pubkey: string } & Omit< }; return ( - - } onClick={() => loginAsUser()}> - Login as {getUserDisplayName(metadata, pubkey)} - - } - href={`https://www.nostr.guru/p/${npub}`} - target="_blank" - > - Open in Nostr.guru - - } - href={`https://brb.io/u/${npub}`} - target="_blank" - > - Open in BRB - - } - href={`https://snort.social/p/${npub}`} - target="_blank" - > - Open in snort.social - - + <> + + } onClick={() => loginAsUser()}> + Login as {getUserDisplayName(metadata, pubkey)} + + } + href={`https://www.nostr.guru/p/${npub}`} + target="_blank" + > + Open in Nostr.guru + + } + href={`https://brb.io/u/${npub}`} + target="_blank" + > + Open in BRB + + } + href={`https://snort.social/p/${npub}`} + target="_blank" + > + Open in snort.social + + }> + View Raw + + + {infoModal.isOpen && ( + + + + + +
{JSON.stringify(metadata, null, 2)}
+
+
+
+ )} + ); };