diff options
author | Paul Frazee <pfrazee@gmail.com> | 2024-06-11 11:30:38 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 11:30:38 -0700 |
commit | 46e12c6d34897fab77e039b1acb13b88a4b97a80 (patch) | |
tree | 819a9dfd019202087c9c1794fc674413eaf4e8e1 /src/view/com/post-thread/PostThreadLoadMore.tsx | |
parent | 4b6609d48b41cdc5be6fb957ea396e8aba18b1b6 (diff) | |
download | voidsky-46e12c6d34897fab77e039b1acb13b88a4b97a80.tar.zst |
Improve thread loading (#4402)
* Increase the number of posts loaded when a self-thread is present * Increase depth to 10, detect cutoffs on self-threads and show continue link * Stacky the avis
Diffstat (limited to 'src/view/com/post-thread/PostThreadLoadMore.tsx')
-rw-r--r-- | src/view/com/post-thread/PostThreadLoadMore.tsx | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/view/com/post-thread/PostThreadLoadMore.tsx b/src/view/com/post-thread/PostThreadLoadMore.tsx new file mode 100644 index 000000000..780ea7728 --- /dev/null +++ b/src/view/com/post-thread/PostThreadLoadMore.tsx @@ -0,0 +1,57 @@ +import * as React from 'react' +import {View} from 'react-native' +import {AppBskyFeedDefs, AtUri} from '@atproto/api' +import {Trans} from '@lingui/macro' + +import {makeProfileLink} from '#/lib/routes/links' +import {atoms as a, useTheme} from '#/alf' +import {Text} from '#/components/Typography' +import {Link} from '../util/Link' +import {UserAvatar} from '../util/UserAvatar' + +export function PostThreadLoadMore({post}: {post: AppBskyFeedDefs.PostView}) { + const t = useTheme() + + const postHref = React.useMemo(() => { + const urip = new AtUri(post.uri) + return makeProfileLink(post.author, 'post', urip.rkey) + }, [post.uri, post.author]) + + return ( + <Link + href={postHref} + style={[a.flex_row, a.align_center, a.py_md, {paddingHorizontal: 14}]} + hoverStyle={[t.atoms.bg_contrast_25]}> + <View style={[a.flex_row]}> + <View + style={{ + alignItems: 'center', + justifyContent: 'center', + width: 34, + height: 34, + borderRadius: 18, + backgroundColor: t.atoms.bg.backgroundColor, + marginRight: -20, + }}> + <UserAvatar avatar={post.author.avatar} size={30} /> + </View> + <View + style={{ + alignItems: 'center', + justifyContent: 'center', + width: 34, + height: 34, + borderRadius: 18, + backgroundColor: t.atoms.bg.backgroundColor, + }}> + <UserAvatar avatar={post.author.avatar} size={30} /> + </View> + </View> + <View style={[a.px_sm]}> + <Text style={[{color: t.palette.primary_500}, a.text_md]}> + <Trans>Continue thread...</Trans> + </Text> + </View> + </Link> + ) +} |