From 1483fa6bb257b5949df37dd18c5c2f7a85641298 Mon Sep 17 00:00:00 2001 From: Kieran Date: Mon, 16 Jan 2023 22:22:21 +0000 Subject: [PATCH] tweaks: Load mentions Nip5 cleanup --- src/element/Mention.tsx | 21 +++++++++++++++++++++ src/element/Nip05.css | 4 ++++ src/element/Nip05.tsx | 9 +-------- src/element/ProfileImage.tsx | 5 ++--- src/element/Text.tsx | 4 ++-- 5 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 src/element/Mention.tsx diff --git a/src/element/Mention.tsx b/src/element/Mention.tsx new file mode 100644 index 00000000..45a0cbf3 --- /dev/null +++ b/src/element/Mention.tsx @@ -0,0 +1,21 @@ +import { useMemo } from "react"; +import { Link } from "react-router-dom"; +import useProfile from "../feed/ProfileFeed"; +import { HexKey } from "../nostr"; +import { hexToBech32, profileLink } from "../Util"; + +export default function Mention({ pubkey }: { pubkey: HexKey }) { + const user = useProfile(pubkey)?.get(pubkey); + + const name = useMemo(() => { + let name = hexToBech32("npub", pubkey).substring(0, 12); + if ((user?.display_name?.length ?? 0) > 0) { + name = user!.display_name!; + } else if ((user?.name?.length ?? 0) > 0) { + name = user!.name!; + } + return name; + }, [user]); + + return e.stopPropagation()}>@{name} +} \ No newline at end of file diff --git a/src/element/Nip05.css b/src/element/Nip05.css index 6a9250f6..c71ebe0f 100644 --- a/src/element/Nip05.css +++ b/src/element/Nip05.css @@ -5,6 +5,10 @@ margin: .2em; } +.nip05.failed { + text-decoration: line-through; +} + .nip05 .nick { color: var(--gray-light); font-weight: bold; diff --git a/src/element/Nip05.tsx b/src/element/Nip05.tsx index 2adb34ac..ff1e3428 100644 --- a/src/element/Nip05.tsx +++ b/src/element/Nip05.tsx @@ -53,7 +53,7 @@ const Nip05 = (props: Nip05Params) => { const { isVerified, couldNotVerify } = useIsVerified(props.pubkey, props.nip05) return ( -
ev.stopPropagation()}> +
ev.stopPropagation()}>
{!isDefaultUser && name}
@@ -68,13 +68,6 @@ const Nip05 = (props: Nip05Params) => { size="xs" /> )} - {isVerified && ( - - )} {couldNotVerify && ( 0; + const name = useMemo(() => { let name = hexToBech32("npub", pubkey).substring(0, 12); if ((user?.display_name?.length ?? 0) > 0) { @@ -34,7 +33,7 @@ export default function ProfileImage({ pubkey, subHeader, showUsername = true, c return (
- navigate(link ?? profileLink(pubkey))} /> + navigate(link ?? profileLink(pubkey))} />
{showUsername && (
diff --git a/src/element/Text.tsx b/src/element/Text.tsx index 0f6339d1..bb3c76fa 100644 --- a/src/element/Text.tsx +++ b/src/element/Text.tsx @@ -12,6 +12,7 @@ import './Text.css' import { useMemo } from "react"; import Tag from "../nostr/Tag"; import { MetadataCache } from "../db/User"; +import Mention from "./Mention"; function transformHttpLink(a: string) { try { @@ -94,8 +95,7 @@ function extractMentions(fragments: Fragment[], tags: Tag[], users: Map e.stopPropagation()}>@{pUser}; + return } case "e": { let eText = hexToBech32("note", ref.Event!).substring(0, 12);