diff --git a/src/components/inline-note-content.tsx b/src/components/compact-note-content.tsx similarity index 76% rename from src/components/inline-note-content.tsx rename to src/components/compact-note-content.tsx index 5ebad39ca..3b2aaa116 100644 --- a/src/components/inline-note-content.tsx +++ b/src/components/compact-note-content.tsx @@ -6,14 +6,14 @@ import { EmbedableContent, embedUrls, truncateEmbedableContent } from "../helper import { embedNostrLinks, embedNostrMentions, embedNostrHashtags, embedEmoji, renderGenericUrl } from "./embed-types"; import { LightboxProvider } from "./lightbox-provider"; -function buildContents(event: NostrEvent | DraftNostrEvent) { +function buildContents(event: NostrEvent | DraftNostrEvent, textOnly = false) { let content: EmbedableContent = [event.content.trim().replace(/\n+/g, "\n")]; // common content = embedUrls(content, [renderGenericUrl]); // nostr - content = embedNostrLinks(content); + content = embedNostrLinks(content, textOnly); content = embedNostrMentions(content, event); content = embedNostrHashtags(content, event); content = embedEmoji(content, event); @@ -23,12 +23,13 @@ function buildContents(event: NostrEvent | DraftNostrEvent) { export type NoteContentsProps = { event: NostrEvent | DraftNostrEvent; + textOnly?: boolean; maxLength?: number; }; -export const InlineNoteContent = React.memo( - ({ event, maxLength, ...props }: NoteContentsProps & Omit) => { - let content = buildContents(event); +export const CompactNoteContent = React.memo( + ({ event, maxLength, textOnly = false, ...props }: NoteContentsProps & Omit) => { + let content = buildContents(event, textOnly); let truncated = maxLength !== undefined ? truncateEmbedableContent(content, maxLength) : content; return ( diff --git a/src/components/embed-event/event-types/embedded-note.tsx b/src/components/embed-event/event-types/embedded-note.tsx index cd694aa75..f0a8dc472 100644 --- a/src/components/embed-event/event-types/embedded-note.tsx +++ b/src/components/embed-event/event-types/embedded-note.tsx @@ -13,7 +13,7 @@ import { TrustProvider } from "../../../providers/trust"; import { NoteLink } from "../../note-link"; import Timestamp from "../../timestamp"; import { getSharableEventAddress } from "../../../helpers/nip19"; -import { InlineNoteContent } from "../../inline-note-content"; +import { CompactNoteContent } from "../../compact-note-content"; import { useNavigateInDrawer } from "../../../providers/drawer-sub-view-provider"; import HoverLinkOverlay from "../../hover-link-overlay"; @@ -44,7 +44,7 @@ export default function EmbeddedNote({ event, ...props }: Omit - + ); diff --git a/src/components/embed-event/event-types/embedded-stemstr-track.tsx b/src/components/embed-event/event-types/embedded-stemstr-track.tsx index 2a9d2746c..66006b9c2 100644 --- a/src/components/embed-event/event-types/embedded-stemstr-track.tsx +++ b/src/components/embed-event/event-types/embedded-stemstr-track.tsx @@ -18,7 +18,7 @@ import { import { NostrEvent } from "../../../types/nostr-event"; import UserAvatarLink from "../../user-avatar-link"; import { UserLink } from "../../user-link"; -import { InlineNoteContent } from "../../inline-note-content"; +import { CompactNoteContent } from "../../compact-note-content"; import { getDownloadURL, getHashtags, getStreamURL } from "../../../helpers/nostr/stemstr"; import { DownloadIcon, ReplyIcon } from "../../icons"; import NoteZapButton from "../../note/note-zap-button"; @@ -54,7 +54,7 @@ export default function EmbeddedStemstrTrack({ track, ...props }: Omit {player} - + {hashtags.length > 0 && ( {hashtags.map((hashtag) => ( diff --git a/src/components/embed-types/nostr.tsx b/src/components/embed-types/nostr.tsx index a19103dd3..ba221db4c 100644 --- a/src/components/embed-types/nostr.tsx +++ b/src/components/embed-types/nostr.tsx @@ -10,7 +10,7 @@ import { EmbedEventPointer } from "../embed-event"; // nostr:nevent1qqsthg2qlxp9l7egtwa92t8lusm7pjknmjwa75ctrrpcjyulr9754fqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq36amnwvaz7tmwdaehgu3dwp6kytnhv4kxcmmjv3jhytnwv46q2qg5q9 // nostr:nevent1qqsq3wc73lqxd70lg43m5rul57d4mhcanttjat56e30yx5zla48qzlspz9mhxue69uhkummnw3e82efwvdhk6qgdwaehxw309ahx7uewd3hkcq5hsum -export function embedNostrLinks(content: EmbedableContent) { +export function embedNostrLinks(content: EmbedableContent, inline = false) { return embedJSX(content, { name: "nostr-link", regexp: getMatchNostrLink(), @@ -27,7 +27,7 @@ export function embedNostrLinks(content: EmbedableContent) { case "nevent": case "naddr": case "nrelay": - return ; + return inline === false ? : null; default: return null; } diff --git a/src/components/note/index.tsx b/src/components/note/index.tsx index 254167aab..f9fe67868 100644 --- a/src/components/note/index.tsx +++ b/src/components/note/index.tsx @@ -46,7 +46,7 @@ import HoverLinkOverlay from "../hover-link-overlay"; import { nip19 } from "nostr-tools"; import NoteCommunityMetadata from "./note-community-metadata"; import useSingleEvent from "../../hooks/use-single-event"; -import { InlineNoteContent } from "../inline-note-content"; +import { CompactNoteContent } from "../compact-note-content"; import NoteProxyLink from "./components/note-proxy-link"; import { NoteDetailsButton } from "./components/note-details-button"; import EventInteractionDetailsModal from "../event-interactions-modal"; @@ -119,7 +119,7 @@ export const Note = React.memo( Replying to - + )} diff --git a/src/views/community/components/community-post.tsx b/src/views/community/components/community-post.tsx index 68484e0a2..70f5789f2 100644 --- a/src/views/community/components/community-post.tsx +++ b/src/views/community/components/community-post.tsx @@ -21,7 +21,7 @@ import { getEventCommunityPointer, getPostSubject } from "../../../helpers/nostr import { useNavigateInDrawer } from "../../../providers/drawer-sub-view-provider"; import { getSharableEventAddress } from "../../../helpers/nip19"; import HoverLinkOverlay from "../../../components/hover-link-overlay"; -import { InlineNoteContent } from "../../../components/inline-note-content"; +import { CompactNoteContent } from "../../../components/compact-note-content"; import { useRegisterIntersectionEntity } from "../../../providers/intersection-observer"; import { getEventUID, parseHardcodedNoteContent } from "../../../helpers/nostr/events"; import { UserLink } from "../../../components/user-link"; @@ -97,7 +97,7 @@ export function CommunityTextPost({ - + @@ -148,7 +148,7 @@ export function CommunityRepostPost({ <> - + )}