Enable tags inside of quotes (#3041)

* enable tags for quote posts

* mentions too

* just disable pointer events instead

* apply fix for both web and native

* minimize diff
zio/stable
Hailey 2024-03-01 16:04:20 -08:00 committed by GitHub
parent e950463f71
commit f016cdbca9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 25 deletions

View File

@ -78,40 +78,31 @@ export function RichText({
const link = segment.link
const mention = segment.mention
const tag = segment.tag
if (
mention &&
AppBskyRichtextFacet.validateMention(mention).success &&
!disableLinks
) {
if (mention && AppBskyRichtextFacet.validateMention(mention).success) {
els.push(
<InlineLink
selectable={selectable}
key={key}
to={`/profile/${mention.did}`}
style={[...styles, {pointerEvents: 'auto'}]}
style={[...styles, {pointerEvents: disableLinks ? 'none' : 'auto'}]}
// @ts-ignore TODO
dataSet={WORD_WRAP}>
{segment.text}
</InlineLink>,
)
} else if (link && AppBskyRichtextFacet.validateLink(link).success) {
if (disableLinks) {
els.push(toShortUrl(segment.text))
} else {
els.push(
<InlineLink
selectable={selectable}
key={key}
to={link.uri}
style={[...styles, {pointerEvents: 'auto'}]}
style={[...styles, {pointerEvents: disableLinks ? 'none' : 'auto'}]}
// @ts-ignore TODO
dataSet={WORD_WRAP}>
{toShortUrl(segment.text)}
</InlineLink>,
)
}
} else if (
!disableLinks &&
enableTags &&
tag &&
AppBskyRichtextFacet.validateTag(tag).success
@ -124,6 +115,7 @@ export function RichText({
style={styles}
selectable={selectable}
authorHandle={authorHandle}
disableLinks={disableLinks}
/>,
)
} else {
@ -136,7 +128,7 @@ export function RichText({
<Text
selectable={selectable}
testID={testID}
style={styles}
style={[styles, {pointerEvents: disableLinks ? 'none' : 'auto'}]}
numberOfLines={numberOfLines}
// @ts-ignore web only -prf
dataSet={WORD_WRAP}>
@ -151,11 +143,13 @@ function RichTextTag({
style,
selectable,
authorHandle,
disableLinks,
}: {
text: string
tag: string
selectable?: boolean
authorHandle?: string
disableLinks?: boolean
} & TextStyleProp) {
const t = useTheme()
const {_} = useLingui()
@ -204,7 +198,7 @@ function RichTextTag({
style={[
style,
{
pointerEvents: 'auto',
pointerEvents: disableLinks ? 'none' : 'auto',
color: t.palette.primary_500,
},
web({

View File

@ -91,7 +91,10 @@ export function QuoteEmbed({
const richText = React.useMemo(
() =>
quote.text.trim()
? new RichTextAPI({text: quote.text, facets: quote.facets})
? new RichTextAPI({
text: quote.text,
facets: quote.facets,
})
: undefined,
[quote.text, quote.facets],
)