mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-04-01 00:19:45 +02:00
small fix for reply note bug
This commit is contained in:
parent
d0fc4fb034
commit
487dabaede
@ -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<BoxProps, "children">) => {
|
||||
let content = buildContents(event);
|
||||
export const CompactNoteContent = React.memo(
|
||||
({ event, maxLength, textOnly = false, ...props }: NoteContentsProps & Omit<BoxProps, "children">) => {
|
||||
let content = buildContents(event, textOnly);
|
||||
let truncated = maxLength !== undefined ? truncateEmbedableContent(content, maxLength) : content;
|
||||
|
||||
return (
|
@ -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<CardProps, "child
|
||||
<Timestamp timestamp={event.created_at} />
|
||||
</NoteLink>
|
||||
</Flex>
|
||||
<InlineNoteContent px="2" event={event} maxLength={96} />
|
||||
<CompactNoteContent px="2" event={event} maxLength={96} />
|
||||
</Card>
|
||||
</TrustProvider>
|
||||
);
|
||||
|
@ -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<CardProps
|
||||
</CardHeader>
|
||||
<CardBody p="2" display="flex" gap="2" flexDirection="column">
|
||||
{player}
|
||||
<InlineNoteContent event={track} />
|
||||
<CompactNoteContent event={track} />
|
||||
{hashtags.length > 0 && (
|
||||
<Flex wrap="wrap" gap="2">
|
||||
{hashtags.map((hashtag) => (
|
||||
|
@ -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 <EmbedEventPointer pointer={decoded} />;
|
||||
return inline === false ? <EmbedEventPointer pointer={decoded} /> : null;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
@ -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(
|
||||
<Text>
|
||||
Replying to <UserLink pubkey={repliedTo.pubkey} fontWeight="bold" />
|
||||
</Text>
|
||||
<InlineNoteContent event={repliedTo} maxLength={96} isTruncated />
|
||||
<CompactNoteContent event={repliedTo} maxLength={96} isTruncated textOnly />
|
||||
</Flex>
|
||||
)}
|
||||
</CardHeader>
|
||||
|
@ -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({
|
||||
<Card as={LinkBox} ref={ref} {...props}>
|
||||
<PostSubject event={event} />
|
||||
<CardBody p="2">
|
||||
<InlineNoteContent event={event} maxLength={96} />
|
||||
<CompactNoteContent event={event} maxLength={96} />
|
||||
</CardBody>
|
||||
<CardFooter display="flex" gap="2" alignItems="center" p="2" flexWrap="wrap">
|
||||
<Text>
|
||||
@ -148,7 +148,7 @@ export function CommunityRepostPost({
|
||||
<>
|
||||
<PostSubject event={repost} />
|
||||
<CardBody p="2">
|
||||
<InlineNoteContent event={repost} maxLength={96} />
|
||||
<CompactNoteContent event={repost} maxLength={96} />
|
||||
</CardBody>
|
||||
</>
|
||||
)}
|
||||
|
Loading…
x
Reference in New Issue
Block a user