Show quote posts (#4865)

* show quote posts

* fix filter

* fix keyExtractor

* move likedby and repostedby to new file structure

* use modern list component

* remove relative imports

* update quotes count after quoting

* call `onPost` after updating quote count

* Revert "update quotes count after quoting"

This reverts commit 1f1887730a210c57c1e5a0eb0f47c42c42cf1b4b.

* implement

* update like count in quotes list

* only add `onPostReply` where needed

* Filter quotes with detached embeds

* Bump SDK

* Don't show error for no results

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Eric Bailey <git@esb.lol>
This commit is contained in:
Samuel Newman 2024-08-21 21:26:25 +01:00 committed by GitHub
parent ddb0b80017
commit 56ab5e177f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 463 additions and 79 deletions

View file

@ -199,6 +199,11 @@ let PostThreadItemLoaded = ({
return makeProfileLink(post.author, 'post', urip.rkey, 'reposted-by')
}, [post.uri, post.author])
const repostsTitle = _(msg`Reposts of this post`)
const quotesHref = React.useMemo(() => {
const urip = new AtUri(post.uri)
return makeProfileLink(post.author, 'post', urip.rkey, 'quotes')
}, [post.uri, post.author])
const quotesTitle = _(msg`Quotes of this post`)
const translatorUrl = getTranslatorLink(
record?.text || '',
@ -343,7 +348,9 @@ let PostThreadItemLoaded = ({
translatorUrl={translatorUrl}
needsTranslation={needsTranslation}
/>
{post.repostCount !== 0 || post.likeCount !== 0 ? (
{post.repostCount !== 0 ||
post.likeCount !== 0 ||
post.quoteCount !== 0 ? (
// Show this section unless we're *sure* it has no engagement.
<View style={[styles.expandedInfo, pal.border]}>
{post.repostCount != null && post.repostCount !== 0 ? (
@ -382,6 +389,26 @@ let PostThreadItemLoaded = ({
</Text>
</Link>
) : null}
{post.quoteCount != null && post.quoteCount !== 0 ? (
<Link
style={styles.expandedInfoItem}
href={quotesHref}
title={quotesTitle}>
<Text
testID="quoteCount-expanded"
type="lg"
style={pal.textLight}>
<Text type="xl-bold" style={pal.text}>
{formatCount(post.quoteCount)}
</Text>{' '}
<Plural
value={post.quoteCount}
one="quote"
other="quotes"
/>
</Text>
</Link>
) : null}
</View>
) : null}
<View style={[s.pl10, s.pr10]}>
@ -391,6 +418,7 @@ let PostThreadItemLoaded = ({
record={record}
richText={richText}
onPressReply={onPressReply}
onPostReply={onPostReply}
logContext="PostThreadItem"
/>
</View>