mirror of
https://github.com/hzrd149/nostrudel.git
synced 2025-10-08 20:09:17 +02:00
small fix for reply note bug
This commit is contained in:
@@ -6,14 +6,14 @@ import { EmbedableContent, embedUrls, truncateEmbedableContent } from "../helper
|
|||||||
import { embedNostrLinks, embedNostrMentions, embedNostrHashtags, embedEmoji, renderGenericUrl } from "./embed-types";
|
import { embedNostrLinks, embedNostrMentions, embedNostrHashtags, embedEmoji, renderGenericUrl } from "./embed-types";
|
||||||
import { LightboxProvider } from "./lightbox-provider";
|
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")];
|
let content: EmbedableContent = [event.content.trim().replace(/\n+/g, "\n")];
|
||||||
|
|
||||||
// common
|
// common
|
||||||
content = embedUrls(content, [renderGenericUrl]);
|
content = embedUrls(content, [renderGenericUrl]);
|
||||||
|
|
||||||
// nostr
|
// nostr
|
||||||
content = embedNostrLinks(content);
|
content = embedNostrLinks(content, textOnly);
|
||||||
content = embedNostrMentions(content, event);
|
content = embedNostrMentions(content, event);
|
||||||
content = embedNostrHashtags(content, event);
|
content = embedNostrHashtags(content, event);
|
||||||
content = embedEmoji(content, event);
|
content = embedEmoji(content, event);
|
||||||
@@ -23,12 +23,13 @@ function buildContents(event: NostrEvent | DraftNostrEvent) {
|
|||||||
|
|
||||||
export type NoteContentsProps = {
|
export type NoteContentsProps = {
|
||||||
event: NostrEvent | DraftNostrEvent;
|
event: NostrEvent | DraftNostrEvent;
|
||||||
|
textOnly?: boolean;
|
||||||
maxLength?: number;
|
maxLength?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const InlineNoteContent = React.memo(
|
export const CompactNoteContent = React.memo(
|
||||||
({ event, maxLength, ...props }: NoteContentsProps & Omit<BoxProps, "children">) => {
|
({ event, maxLength, textOnly = false, ...props }: NoteContentsProps & Omit<BoxProps, "children">) => {
|
||||||
let content = buildContents(event);
|
let content = buildContents(event, textOnly);
|
||||||
let truncated = maxLength !== undefined ? truncateEmbedableContent(content, maxLength) : content;
|
let truncated = maxLength !== undefined ? truncateEmbedableContent(content, maxLength) : content;
|
||||||
|
|
||||||
return (
|
return (
|
@@ -13,7 +13,7 @@ import { TrustProvider } from "../../../providers/trust";
|
|||||||
import { NoteLink } from "../../note-link";
|
import { NoteLink } from "../../note-link";
|
||||||
import Timestamp from "../../timestamp";
|
import Timestamp from "../../timestamp";
|
||||||
import { getSharableEventAddress } from "../../../helpers/nip19";
|
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 { useNavigateInDrawer } from "../../../providers/drawer-sub-view-provider";
|
||||||
import HoverLinkOverlay from "../../hover-link-overlay";
|
import HoverLinkOverlay from "../../hover-link-overlay";
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ export default function EmbeddedNote({ event, ...props }: Omit<CardProps, "child
|
|||||||
<Timestamp timestamp={event.created_at} />
|
<Timestamp timestamp={event.created_at} />
|
||||||
</NoteLink>
|
</NoteLink>
|
||||||
</Flex>
|
</Flex>
|
||||||
<InlineNoteContent px="2" event={event} maxLength={96} />
|
<CompactNoteContent px="2" event={event} maxLength={96} />
|
||||||
</Card>
|
</Card>
|
||||||
</TrustProvider>
|
</TrustProvider>
|
||||||
);
|
);
|
||||||
|
@@ -18,7 +18,7 @@ import {
|
|||||||
import { NostrEvent } from "../../../types/nostr-event";
|
import { NostrEvent } from "../../../types/nostr-event";
|
||||||
import UserAvatarLink from "../../user-avatar-link";
|
import UserAvatarLink from "../../user-avatar-link";
|
||||||
import { UserLink } from "../../user-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 { getDownloadURL, getHashtags, getStreamURL } from "../../../helpers/nostr/stemstr";
|
||||||
import { DownloadIcon, ReplyIcon } from "../../icons";
|
import { DownloadIcon, ReplyIcon } from "../../icons";
|
||||||
import NoteZapButton from "../../note/note-zap-button";
|
import NoteZapButton from "../../note/note-zap-button";
|
||||||
@@ -54,7 +54,7 @@ export default function EmbeddedStemstrTrack({ track, ...props }: Omit<CardProps
|
|||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardBody p="2" display="flex" gap="2" flexDirection="column">
|
<CardBody p="2" display="flex" gap="2" flexDirection="column">
|
||||||
{player}
|
{player}
|
||||||
<InlineNoteContent event={track} />
|
<CompactNoteContent event={track} />
|
||||||
{hashtags.length > 0 && (
|
{hashtags.length > 0 && (
|
||||||
<Flex wrap="wrap" gap="2">
|
<Flex wrap="wrap" gap="2">
|
||||||
{hashtags.map((hashtag) => (
|
{hashtags.map((hashtag) => (
|
||||||
|
@@ -10,7 +10,7 @@ import { EmbedEventPointer } from "../embed-event";
|
|||||||
|
|
||||||
// nostr:nevent1qqsthg2qlxp9l7egtwa92t8lusm7pjknmjwa75ctrrpcjyulr9754fqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq36amnwvaz7tmwdaehgu3dwp6kytnhv4kxcmmjv3jhytnwv46q2qg5q9
|
// nostr:nevent1qqsthg2qlxp9l7egtwa92t8lusm7pjknmjwa75ctrrpcjyulr9754fqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq36amnwvaz7tmwdaehgu3dwp6kytnhv4kxcmmjv3jhytnwv46q2qg5q9
|
||||||
// nostr:nevent1qqsq3wc73lqxd70lg43m5rul57d4mhcanttjat56e30yx5zla48qzlspz9mhxue69uhkummnw3e82efwvdhk6qgdwaehxw309ahx7uewd3hkcq5hsum
|
// nostr:nevent1qqsq3wc73lqxd70lg43m5rul57d4mhcanttjat56e30yx5zla48qzlspz9mhxue69uhkummnw3e82efwvdhk6qgdwaehxw309ahx7uewd3hkcq5hsum
|
||||||
export function embedNostrLinks(content: EmbedableContent) {
|
export function embedNostrLinks(content: EmbedableContent, inline = false) {
|
||||||
return embedJSX(content, {
|
return embedJSX(content, {
|
||||||
name: "nostr-link",
|
name: "nostr-link",
|
||||||
regexp: getMatchNostrLink(),
|
regexp: getMatchNostrLink(),
|
||||||
@@ -27,7 +27,7 @@ export function embedNostrLinks(content: EmbedableContent) {
|
|||||||
case "nevent":
|
case "nevent":
|
||||||
case "naddr":
|
case "naddr":
|
||||||
case "nrelay":
|
case "nrelay":
|
||||||
return <EmbedEventPointer pointer={decoded} />;
|
return inline === false ? <EmbedEventPointer pointer={decoded} /> : null;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@@ -46,7 +46,7 @@ import HoverLinkOverlay from "../hover-link-overlay";
|
|||||||
import { nip19 } from "nostr-tools";
|
import { nip19 } from "nostr-tools";
|
||||||
import NoteCommunityMetadata from "./note-community-metadata";
|
import NoteCommunityMetadata from "./note-community-metadata";
|
||||||
import useSingleEvent from "../../hooks/use-single-event";
|
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 NoteProxyLink from "./components/note-proxy-link";
|
||||||
import { NoteDetailsButton } from "./components/note-details-button";
|
import { NoteDetailsButton } from "./components/note-details-button";
|
||||||
import EventInteractionDetailsModal from "../event-interactions-modal";
|
import EventInteractionDetailsModal from "../event-interactions-modal";
|
||||||
@@ -119,7 +119,7 @@ export const Note = React.memo(
|
|||||||
<Text>
|
<Text>
|
||||||
Replying to <UserLink pubkey={repliedTo.pubkey} fontWeight="bold" />
|
Replying to <UserLink pubkey={repliedTo.pubkey} fontWeight="bold" />
|
||||||
</Text>
|
</Text>
|
||||||
<InlineNoteContent event={repliedTo} maxLength={96} isTruncated />
|
<CompactNoteContent event={repliedTo} maxLength={96} isTruncated textOnly />
|
||||||
</Flex>
|
</Flex>
|
||||||
)}
|
)}
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
@@ -21,7 +21,7 @@ import { getEventCommunityPointer, getPostSubject } from "../../../helpers/nostr
|
|||||||
import { useNavigateInDrawer } from "../../../providers/drawer-sub-view-provider";
|
import { useNavigateInDrawer } from "../../../providers/drawer-sub-view-provider";
|
||||||
import { getSharableEventAddress } from "../../../helpers/nip19";
|
import { getSharableEventAddress } from "../../../helpers/nip19";
|
||||||
import HoverLinkOverlay from "../../../components/hover-link-overlay";
|
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 { useRegisterIntersectionEntity } from "../../../providers/intersection-observer";
|
||||||
import { getEventUID, parseHardcodedNoteContent } from "../../../helpers/nostr/events";
|
import { getEventUID, parseHardcodedNoteContent } from "../../../helpers/nostr/events";
|
||||||
import { UserLink } from "../../../components/user-link";
|
import { UserLink } from "../../../components/user-link";
|
||||||
@@ -97,7 +97,7 @@ export function CommunityTextPost({
|
|||||||
<Card as={LinkBox} ref={ref} {...props}>
|
<Card as={LinkBox} ref={ref} {...props}>
|
||||||
<PostSubject event={event} />
|
<PostSubject event={event} />
|
||||||
<CardBody p="2">
|
<CardBody p="2">
|
||||||
<InlineNoteContent event={event} maxLength={96} />
|
<CompactNoteContent event={event} maxLength={96} />
|
||||||
</CardBody>
|
</CardBody>
|
||||||
<CardFooter display="flex" gap="2" alignItems="center" p="2" flexWrap="wrap">
|
<CardFooter display="flex" gap="2" alignItems="center" p="2" flexWrap="wrap">
|
||||||
<Text>
|
<Text>
|
||||||
@@ -148,7 +148,7 @@ export function CommunityRepostPost({
|
|||||||
<>
|
<>
|
||||||
<PostSubject event={repost} />
|
<PostSubject event={repost} />
|
||||||
<CardBody p="2">
|
<CardBody p="2">
|
||||||
<InlineNoteContent event={repost} maxLength={96} />
|
<CompactNoteContent event={repost} maxLength={96} />
|
||||||
</CardBody>
|
</CardBody>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
Reference in New Issue
Block a user