Add OP thread numbering to feed posts (#11472)
This commit is contained in:
@@ -872,6 +872,7 @@ let PostFeed = ({
|
||||
<PostFeedItem
|
||||
post={item.post}
|
||||
record={item.record}
|
||||
postNumbering={item.postNumbering}
|
||||
reason={indexInSlice === 0 ? slice.reason : undefined}
|
||||
feedContext={slice.feedContext}
|
||||
reqId={slice.reqId}
|
||||
|
||||
@@ -6,6 +6,7 @@ import {RichText as RichTextAPI} from '@bsky/sdk/richtext'
|
||||
import {useQueryClient} from '@tanstack/react-query'
|
||||
|
||||
import {type ReasonFeedSource} from '#/lib/api/feed/types'
|
||||
import {type FeedPostNumbering} from '#/lib/api/feed-manip'
|
||||
import {MAX_POST_LINES} from '#/lib/constants'
|
||||
import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
|
||||
import {usePalette} from '#/lib/hooks/usePalette'
|
||||
@@ -27,6 +28,11 @@ import {
|
||||
import {Link} from '#/view/com/util/Link'
|
||||
import {PostMeta} from '#/view/com/util/PostMeta'
|
||||
import {PreviewableUserAvatar} from '#/view/com/util/UserAvatar'
|
||||
import {
|
||||
POST_NUMBER_INLINE_OFFSET,
|
||||
ThreadItemPostNumber,
|
||||
useHasThreadItemPostNumber,
|
||||
} from '#/screens/PostThread/components/ThreadItemPostNumber'
|
||||
import {atoms as a, select, useTheme} from '#/alf'
|
||||
import {
|
||||
GalleryBleed,
|
||||
@@ -53,6 +59,7 @@ import {PostFeedReason} from './PostFeedReason'
|
||||
|
||||
interface FeedItemProps {
|
||||
record: app.bsky.feed.post.Main
|
||||
postNumbering?: FeedPostNumbering
|
||||
reason:
|
||||
| app.bsky.feed.defs.ReasonRepost
|
||||
| app.bsky.feed.defs.ReasonPin
|
||||
@@ -75,6 +82,7 @@ interface FeedItemProps {
|
||||
export function PostFeedItem({
|
||||
post,
|
||||
record,
|
||||
postNumbering,
|
||||
reason,
|
||||
feedContext,
|
||||
reqId,
|
||||
@@ -112,6 +120,7 @@ export function PostFeedItem({
|
||||
<FeedItemInner
|
||||
post={postShadowed}
|
||||
record={record}
|
||||
postNumbering={postNumbering}
|
||||
reason={reason}
|
||||
feedContext={feedContext}
|
||||
reqId={reqId}
|
||||
@@ -137,6 +146,7 @@ export function PostFeedItem({
|
||||
let FeedItemInner = ({
|
||||
post,
|
||||
record,
|
||||
postNumbering,
|
||||
reason,
|
||||
feedContext,
|
||||
reqId,
|
||||
@@ -426,6 +436,7 @@ let FeedItemInner = ({
|
||||
<PostContent
|
||||
moderation={moderation}
|
||||
richText={richText}
|
||||
postNumbering={postNumbering}
|
||||
postEmbed={post.embed}
|
||||
postAuthor={post.author}
|
||||
onOpenEmbed={onOpenEmbed}
|
||||
@@ -457,6 +468,7 @@ FeedItemInner = memo(FeedItemInner)
|
||||
|
||||
let PostContent = ({
|
||||
post,
|
||||
postNumbering,
|
||||
moderation,
|
||||
richText,
|
||||
postEmbed,
|
||||
@@ -471,12 +483,14 @@ let PostContent = ({
|
||||
postAuthor: app.bsky.feed.defs.PostView['author']
|
||||
onOpenEmbed: () => void
|
||||
post: app.bsky.feed.defs.PostView
|
||||
postNumbering: FeedPostNumbering | undefined
|
||||
additionalPostAlerts?: AppModerationCause[]
|
||||
feedDescriptor?: string
|
||||
}): React.ReactNode => {
|
||||
const [limitLines, setLimitLines] = useState(
|
||||
() => countLines(richText.text) >= MAX_POST_LINES,
|
||||
)
|
||||
const showPostNumber = useHasThreadItemPostNumber(postNumbering)
|
||||
|
||||
const record = useMemo<app.bsky.feed.post.Main | undefined>(
|
||||
() =>
|
||||
@@ -510,12 +524,26 @@ let PostContent = ({
|
||||
style={[a.flex_1, a.text_md]}
|
||||
authorHandle={postAuthor.handle}
|
||||
shouldProxyLinks={true}
|
||||
suffixOffset={POST_NUMBER_INLINE_OFFSET}
|
||||
suffix={
|
||||
!limitLines && showPostNumber ? (
|
||||
<ThreadItemPostNumber value={postNumbering} />
|
||||
) : undefined
|
||||
}
|
||||
/>
|
||||
{limitLines && (
|
||||
<ShowMoreTextButton style={[a.text_md]} onPress={onPressShowMore} />
|
||||
<View style={[a.flex_row, a.align_center, a.gap_xs]}>
|
||||
<ShowMoreTextButton
|
||||
style={[a.text_md]}
|
||||
onPress={onPressShowMore}
|
||||
/>
|
||||
<ThreadItemPostNumber inline={false} value={postNumbering} />
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
) : undefined}
|
||||
) : (
|
||||
<ThreadItemPostNumber inline={false} value={postNumbering} />
|
||||
)}
|
||||
{record && <TranslatedPost hideTranslateLink post={post} />}
|
||||
{postEmbed ? (
|
||||
<View
|
||||
|
||||
Reference in New Issue
Block a user