handle stemstr links as embeds

This commit is contained in:
hzrd149
2023-11-07 08:49:03 +09:00
parent 48949d7112
commit 1dc9ff2f43
3 changed files with 14 additions and 1 deletions

View File

@@ -58,7 +58,7 @@ export default function EmbeddedStemstrTrack({ track, ...props }: Omit<CardProps
{hashtags.length > 0 && (
<Flex wrap="wrap" gap="2">
{hashtags.map((hashtag) => (
<Tag>#{hashtag}</Tag>
<Tag key={hashtag}>#{hashtag}</Tag>
))}
</Flex>
)}

View File

@@ -1,5 +1,6 @@
import { CSSProperties } from "react";
import { Box, useColorMode } from "@chakra-ui/react";
import { EmbedEventPointer } from "../embed-event";
const setZIndex: CSSProperties = { zIndex: 1, position: "relative" };
@@ -110,3 +111,13 @@ export function renderSongDotLinkUrl(match: URL) {
></Box>
);
}
// nostr:nevent1qqs95384ynfcgugz29u25ltl7qs6d5chve8ksw7ms3ega8eyem3n5agpz9mhxue69uhkummnw3e82efwvdhk6qgnwaehxw309aex2mrp09skymr99ehhyec6lyxqd
export function renderStemstrUrl(match: URL) {
if (match.hostname !== "stemstr.app") return null;
const [_, base, id] = match.pathname.split("/");
if (base !== "thread" || id.length !== 64) return null;
return <EmbedEventPointer pointer={{ type: "nevent", data: { id, relays: ["wss://relay.stemstr.app"] } }} />;
}

View File

@@ -22,6 +22,7 @@ import {
renderGenericUrl,
renderSongDotLinkUrl,
embedCashuTokens,
renderStemstrUrl,
} from "../embed-types";
import { LightboxProvider } from "../lightbox-provider";
import { renderRedditUrl } from "../embed-types/reddit";
@@ -42,6 +43,7 @@ function buildContents(event: NostrEvent | DraftNostrEvent, simpleLinks = false)
renderSpotifyUrl,
renderTidalUrl,
renderSongDotLinkUrl,
renderStemstrUrl,
renderImageUrl,
renderVideoUrl,
simpleLinks ? renderGenericUrl : renderOpenGraphUrl,