import './Text.css' import { useMemo, useCallback } from "react"; import { Link } from "react-router-dom"; import ReactMarkdown from "react-markdown"; import { visit, SKIP } from "unist-util-visit"; import { TwitterTweetEmbed } from "react-twitter-embed"; import { UrlRegex, FileExtensionRegex, MentionRegex, InvoiceRegex, YoutubeUrlRegex, TweetUrlRegex, HashtagRegex, TidalRegex, SoundCloudRegex, MixCloudRegex } from "Const"; import { eventLink, hexToBech32 } from "Util"; import Invoice from "Element/Invoice"; import Hashtag from "Element/Hashtag"; import Tag from "Nostr/Tag"; import { MetadataCache } from "State/Users"; import Mention from "Element/Mention"; import TidalEmbed from "Element/TidalEmbed"; import { useSelector } from 'react-redux'; import { RootState } from 'State/Store'; import { UserPreferences } from 'State/Login'; import SoundCloudEmbed from 'Element/SoundCloudEmded' import MixCloudEmbed from './MixCloudEmbed'; function transformHttpLink(a: string, pref: UserPreferences) { try { if (!pref.autoLoadMedia) { return e.stopPropagation()} target="_blank" rel="noreferrer" className="ext">{a} } const url = new URL(a); const youtubeId = YoutubeUrlRegex.test(a) && RegExp.$1; const tweetId = TweetUrlRegex.test(a) && RegExp.$2; const tidalId = TidalRegex.test(a) && RegExp.$1; const soundcloundId = SoundCloudRegex.test(a) && RegExp.$1; const mixcloudId = MixCloudRegex.test(a) && RegExp.$1; const extension = FileExtensionRegex.test(url.pathname.toLowerCase()) && RegExp.$1; if (extension) { switch (extension) { case "gif": case "jpg": case "jpeg": case "png": case "bmp": case "webp": { return ; } case "wav": case "mp3": case "ogg": { return