Threads v2 cleanup (#8902)

* Delete root PostThread component

* Remove PostThreadItem, migrate DebugMod to use new components

* Remove other unused components

* Move PostThreadFollowBtn to new home

* Move PostThreadComposePrompt to new home

* Remove gate

* Keep naming in DebugMod

* rm v1 prefs

---------

Co-authored-by: Samuel Newman <mozzius@protonmail.com>
This commit is contained in:
Eric Bailey
2025-08-26 09:54:19 -05:00
committed by GitHub
parent e91a683810
commit df20ae237e
13 changed files with 40 additions and 2272 deletions
+30 -23
View File
@@ -31,8 +31,11 @@ import {
groupNotifications,
shouldFilterNotif,
} from '#/state/queries/notifications/util'
import {threadPost} from '#/state/queries/usePostThread/views'
import {useSession} from '#/state/session'
import {CenteredView, ScrollView} from '#/view/com/util/Views'
import {ThreadItemAnchor} from '#/screens/PostThread/components/ThreadItemAnchor'
import {ThreadItemPost} from '#/screens/PostThread/components/ThreadItemPost'
import {ProfileHeaderStandard} from '#/screens/Profile/Header/ProfileHeaderStandard'
import {atoms as a, useTheme} from '#/alf'
import {Button, ButtonIcon, ButtonText} from '#/components/Button'
@@ -49,7 +52,6 @@ import * as ProfileCard from '#/components/ProfileCard'
import {H1, H3, P, Text} from '#/components/Typography'
import {ScreenHider} from '../../components/moderation/ScreenHider'
import {NotificationFeedItem} from '../com/notifications/NotificationFeedItem'
import {PostThreadItem} from '../com/post-thread/PostThreadItem'
import {PostFeedItem} from '../com/posts/PostFeedItem'
const LABEL_VALUES: (keyof typeof LABELS)[] = Object.keys(
@@ -519,13 +521,13 @@ export const DebugModScreen = ({}: NativeStackScreenProps<
<MockPostFeedItem post={post} moderation={postModeration} />
<Heading title="Post" subtitle="viewed directly" />
<MockPostThreadItem post={post} moderation={postModeration} />
<MockPostThreadItem post={post} moderationOpts={modOpts} />
<Heading title="Post" subtitle="reply in thread" />
<MockPostThreadItem
post={post}
moderation={postModeration}
reply
moderationOpts={modOpts}
isReply
/>
</>
)}
@@ -837,28 +839,33 @@ function MockPostFeedItem({
function MockPostThreadItem({
post,
moderation,
reply,
moderationOpts,
isReply,
}: {
post: AppBskyFeedDefs.PostView
moderation: ModerationDecision
reply?: boolean
moderationOpts: ModerationOpts
isReply?: boolean
}) {
return (
<PostThreadItem
// @ts-ignore
post={post}
record={post.record as AppBskyFeedPost.Record}
moderation={moderation}
depth={reply ? 1 : 0}
isHighlightedPost={!reply}
treeView={false}
prevPost={undefined}
nextPost={undefined}
hasPrecedingItem={false}
overrideBlur={false}
onPostReply={() => {}}
/>
const thread = threadPost({
uri: post.uri,
depth: isReply ? 1 : 0,
value: {
$type: 'app.bsky.unspecced.defs#threadItemPost',
post,
moreParents: false,
moreReplies: 0,
opThread: false,
hiddenByThreadgate: false,
mutedByViewer: false,
},
moderationOpts,
threadgateHiddenReplies: new Set<string>(),
})
return isReply ? (
<ThreadItemPost item={thread} />
) : (
<ThreadItemAnchor item={thread} />
)
}
+1 -8
View File
@@ -5,17 +5,14 @@ import {
type CommonNavigatorParams,
type NativeStackScreenProps,
} from '#/lib/routes/types'
import {useGate} from '#/lib/statsig/statsig'
import {makeRecordUri} from '#/lib/strings/url-helpers'
import {useSetMinimalShellMode} from '#/state/shell'
import {PostThread as PostThreadComponent} from '#/view/com/post-thread/PostThread'
import {PostThread} from '#/screens/PostThread'
import * as Layout from '#/components/Layout'
type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostThread'>
export function PostThreadScreen({route}: Props) {
const setMinimalShellMode = useSetMinimalShellMode()
const gate = useGate()
const {name, rkey} = route.params
const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey)
@@ -28,11 +25,7 @@ export function PostThreadScreen({route}: Props) {
return (
<Layout.Screen testID="postThreadScreen">
{gate('post_threads_v2_unspecced') || __DEV__ ? (
<PostThread uri={uri} />
) : (
<PostThreadComponent uri={uri} />
)}
<PostThread uri={uri} />
</Layout.Screen>
)
}