diff --git a/src/components/RichText.tsx b/src/components/RichText.tsx index 9908679c57..eca0d7c635 100644 --- a/src/components/RichText.tsx +++ b/src/components/RichText.tsx @@ -11,6 +11,9 @@ import {RichTextTag} from '#/components/RichTextTag' import {Text, type TextProps} from '#/components/Typography' const WORD_WRAP = {wordWrap: 1} +// lifted from facet detection in `RichText` impl, _without_ `gm` flags +const URL_REGEX = + /(^|\s|\()((https?:\/\/[\S]+)|((?[a-z][a-z0-9]*(\.[a-z0-9]+)+)[\S]*))/i export type RichTextProps = TextStyleProp & Pick & { @@ -115,7 +118,8 @@ export function RichText({ , ) } else if (link && AppBskyRichtextFacet.validateLink(link).success) { - if (disableLinks) { + const isValidLink = URL_REGEX.test(link.uri) + if (!isValidLink || disableLinks) { els.push(toShortUrl(segment.text)) } else { els.push(