From 06eb8b9a4caf3b4163451c538fa327a880c3a2d2 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 13 Nov 2023 15:53:57 -0600 Subject: Factor our feed source model (#1887) * Refactor first onboarding step * Replace old FeedSourceCard * Clean up CustomFeedEmbed * Remove discover feeds model * Refactor ProfileFeed screen * Remove useCustomFeed * Delete some unused models * Rip out more prefs * Factor out treeView from thread comp * Improve last commit --- src/view/com/post-thread/PostThread.tsx | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'src/view/com/post-thread/PostThread.tsx') diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index 1e85b3e31..b0e6f1a31 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -32,9 +32,12 @@ import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {NavigationProp} from 'lib/routes/types' import {sanitizeDisplayName} from 'lib/strings/display-names' import {cleanError} from '#/lib/strings/errors' -import {useStores} from '#/state' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import { + UsePreferencesQueryResponse, + usePreferencesQuery, +} from '#/state/queries/preferences' // const MAINTAIN_VISIBLE_CONTENT_POSITION = {minIndexForVisible: 2} TODO @@ -59,11 +62,9 @@ type YieldedItem = export function PostThread({ uri, onPressReply, - treeView, }: { uri: string | undefined onPressReply: () => void - treeView: boolean }) { const { isLoading, @@ -74,6 +75,7 @@ export function PostThread({ data: thread, dataUpdatedAt, } = usePostThreadQuery(uri) + const {data: preferences} = usePreferencesQuery() const rootPost = thread?.type === 'post' ? thread.post : undefined const rootPostRecord = thread?.type === 'post' ? thread.record : undefined @@ -96,7 +98,7 @@ export function PostThread({ if (AppBskyFeedDefs.isBlockedPost(thread)) { return } - if (!thread || isLoading) { + if (!thread || isLoading || !preferences) { return ( @@ -110,7 +112,7 @@ export function PostThread({ thread={thread} isRefetching={isRefetching} dataUpdatedAt={dataUpdatedAt} - treeView={treeView} + threadViewPrefs={preferences.threadViewPrefs} onRefresh={refetch} onPressReply={onPressReply} /> @@ -121,20 +123,19 @@ function PostThreadLoaded({ thread, isRefetching, dataUpdatedAt, - treeView, + threadViewPrefs, onRefresh, onPressReply, }: { thread: ThreadNode isRefetching: boolean dataUpdatedAt: number - treeView: boolean + threadViewPrefs: UsePreferencesQueryResponse['threadViewPrefs'] onRefresh: () => void onPressReply: () => void }) { const {_} = useLingui() const pal = usePalette('default') - const store = useStores() const {isTablet, isDesktop} = useWebMediaQueries() const ref = useRef(null) // const hasScrolledIntoView = useRef(false) TODO @@ -162,16 +163,14 @@ function PostThreadLoaded({ // const highlightedPostIndex = posts.findIndex(post => post._isHighlightedPost) const posts = React.useMemo(() => { let arr = [TOP_COMPONENT].concat( - Array.from( - flattenThreadSkeleton(sortThread(thread, store.preferences.thread)), - ), + Array.from(flattenThreadSkeleton(sortThread(thread, threadViewPrefs))), ) if (arr.length > maxVisible) { arr = arr.slice(0, maxVisible).concat([LOAD_MORE]) } arr.push(BOTTOM_COMPONENT) return arr - }, [thread, maxVisible, store.preferences.thread]) + }, [thread, maxVisible, threadViewPrefs]) // TODO /*const onContentSizeChange = React.useCallback(() => { @@ -297,7 +296,7 @@ function PostThreadLoaded({ post={item.post} record={item.record} dataUpdatedAt={dataUpdatedAt} - treeView={treeView} + treeView={threadViewPrefs.lab_treeViewEnabled} depth={item.ctx.depth} isHighlightedPost={item.ctx.isHighlightedPost} hasMore={item.ctx.hasMore} @@ -322,7 +321,7 @@ function PostThreadLoaded({ pal.colors.border, posts, onRefresh, - treeView, + threadViewPrefs.lab_treeViewEnabled, dataUpdatedAt, _, ], -- cgit 1.4.1