mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-09-19 20:11:31 +02:00
fix bug with users only setting display_name
This commit is contained in:
@@ -24,12 +24,9 @@ export function parseKind0Event(event: NostrEvent): Kind0ParsedContent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getUserDisplayName(metadata: Kind0ParsedContent | undefined, pubkey: string) {
|
export function getUserDisplayName(metadata: Kind0ParsedContent | undefined, pubkey: string) {
|
||||||
if (metadata?.display_name && metadata?.name) {
|
return (
|
||||||
return metadata.display_name;
|
metadata?.display_name || metadata?.name || truncatedId(normalizeToBech32(pubkey, Bech32Prefix.Pubkey) ?? pubkey)
|
||||||
} else if (metadata?.name) {
|
);
|
||||||
return metadata.name;
|
|
||||||
}
|
|
||||||
return truncatedId(normalizeToBech32(pubkey, Bech32Prefix.Pubkey) ?? pubkey);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fixWebsiteUrl(website: string) {
|
export function fixWebsiteUrl(website: string) {
|
||||||
|
@@ -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 { 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 { Bech32Prefix, normalizeToBech32 } from "../../../helpers/nip19";
|
||||||
import accountService from "../../../services/account";
|
import accountService from "../../../services/account";
|
||||||
import { useUserMetadata } from "../../../hooks/use-user-metadata";
|
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 npub = normalizeToBech32(pubkey, Bech32Prefix.Pubkey);
|
||||||
const metadata = useUserMetadata(pubkey);
|
const metadata = useUserMetadata(pubkey);
|
||||||
const userRelays = useUserRelays(pubkey);
|
const userRelays = useUserRelays(pubkey);
|
||||||
|
const infoModal = useDisclosure();
|
||||||
|
|
||||||
const loginAsUser = () => {
|
const loginAsUser = () => {
|
||||||
const readRelays = userRelays?.relays.filter((r) => r.mode === RelayMode.READ).map((r) => r.url) ?? [];
|
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 (
|
return (
|
||||||
<MenuIconButton {...props}>
|
<>
|
||||||
<MenuItem icon={<SpyIcon fontSize="1.5em" />} onClick={() => loginAsUser()}>
|
<MenuIconButton {...props}>
|
||||||
Login as {getUserDisplayName(metadata, pubkey)}
|
<MenuItem icon={<SpyIcon fontSize="1.5em" />} onClick={() => loginAsUser()}>
|
||||||
</MenuItem>
|
Login as {getUserDisplayName(metadata, pubkey)}
|
||||||
<MenuItem
|
</MenuItem>
|
||||||
as="a"
|
<MenuItem
|
||||||
icon={<Avatar src={IMAGE_ICONS.nostrGuruIcon} size="xs" />}
|
as="a"
|
||||||
href={`https://www.nostr.guru/p/${npub}`}
|
icon={<Avatar src={IMAGE_ICONS.nostrGuruIcon} size="xs" />}
|
||||||
target="_blank"
|
href={`https://www.nostr.guru/p/${npub}`}
|
||||||
>
|
target="_blank"
|
||||||
Open in Nostr.guru
|
>
|
||||||
</MenuItem>
|
Open in Nostr.guru
|
||||||
<MenuItem
|
</MenuItem>
|
||||||
as="a"
|
<MenuItem
|
||||||
icon={<Avatar src={IMAGE_ICONS.brbIcon} size="xs" />}
|
as="a"
|
||||||
href={`https://brb.io/u/${npub}`}
|
icon={<Avatar src={IMAGE_ICONS.brbIcon} size="xs" />}
|
||||||
target="_blank"
|
href={`https://brb.io/u/${npub}`}
|
||||||
>
|
target="_blank"
|
||||||
Open in BRB
|
>
|
||||||
</MenuItem>
|
Open in BRB
|
||||||
<MenuItem
|
</MenuItem>
|
||||||
as="a"
|
<MenuItem
|
||||||
icon={<Avatar src={IMAGE_ICONS.snortSocialIcon} size="xs" />}
|
as="a"
|
||||||
href={`https://snort.social/p/${npub}`}
|
icon={<Avatar src={IMAGE_ICONS.snortSocialIcon} size="xs" />}
|
||||||
target="_blank"
|
href={`https://snort.social/p/${npub}`}
|
||||||
>
|
target="_blank"
|
||||||
Open in snort.social
|
>
|
||||||
</MenuItem>
|
Open in snort.social
|
||||||
</MenuIconButton>
|
</MenuItem>
|
||||||
|
<MenuItem onClick={infoModal.onOpen} icon={<CodeIcon />}>
|
||||||
|
View Raw
|
||||||
|
</MenuItem>
|
||||||
|
</MenuIconButton>
|
||||||
|
{infoModal.isOpen && (
|
||||||
|
<Modal isOpen={infoModal.isOpen} onClose={infoModal.onClose} size="6xl">
|
||||||
|
<ModalOverlay />
|
||||||
|
<ModalContent>
|
||||||
|
<ModalCloseButton />
|
||||||
|
<ModalBody overflow="auto" fontSize="sm" padding="2">
|
||||||
|
<pre>{JSON.stringify(metadata, null, 2)}</pre>
|
||||||
|
</ModalBody>
|
||||||
|
</ModalContent>
|
||||||
|
</Modal>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user