diff options
Diffstat (limited to 'src/view/screens/Home.tsx')
-rw-r--r-- | src/view/screens/Home.tsx | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 53813f822..fdd764e44 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -1,7 +1,6 @@ import React from 'react' import {useFocusEffect} from '@react-navigation/native' import {observer} from 'mobx-react-lite' -import isEqual from 'lodash.isequal' import {NativeStackScreenProps, HomeTabNavigatorParams} from 'lib/routes/types' import {FeedDescriptor, FeedParams} from '#/state/queries/post-feed' import {withAuthRequired} from 'view/com/auth/withAuthRequired' @@ -13,6 +12,7 @@ import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' import {useStores} from 'state/index' import {FeedPage} from 'view/com/feeds/FeedPage' import {useSetMinimalShellMode, useSetDrawerSwipeDisabled} from '#/state/shell' +import {usePreferencesQuery} from '#/state/queries/preferences' type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'> export const HomeScreen = withAuthRequired( @@ -23,19 +23,15 @@ export const HomeScreen = withAuthRequired( const pagerRef = React.useRef<PagerRef>(null) const [selectedPage, setSelectedPage] = React.useState(0) const [customFeeds, setCustomFeeds] = React.useState<FeedDescriptor[]>([]) - const [requestedCustomFeeds, setRequestedCustomFeeds] = React.useState< - string[] - >([]) + const {data: preferences} = usePreferencesQuery() React.useEffect(() => { - const pinned = store.preferences.pinnedFeeds + if (!preferences?.feeds?.pinned) return - if (isEqual(pinned, requestedCustomFeeds)) { - // no changes - return - } + const pinned = preferences.feeds.pinned const feeds: FeedDescriptor[] = [] + for (const uri of pinned) { if (uri.includes('app.bsky.feed.generator')) { feeds.push(`feedgen|${uri}`) @@ -43,31 +39,20 @@ export const HomeScreen = withAuthRequired( feeds.push(`list|${uri}`) } } - pagerRef.current?.setPage(0) + setCustomFeeds(feeds) - setRequestedCustomFeeds(pinned) - }, [ - store, - store.preferences.pinnedFeeds, - customFeeds, - setCustomFeeds, - pagerRef, - requestedCustomFeeds, - setRequestedCustomFeeds, - ]) + + pagerRef.current?.setPage(0) + }, [preferences?.feeds?.pinned, setCustomFeeds, pagerRef]) const homeFeedParams = React.useMemo<FeedParams>(() => { - if (!store.preferences.homeFeed.lab_mergeFeedEnabled) { - return {} - } + if (!preferences) return {} + return { - mergeFeedEnabled: true, - mergeFeedSources: store.preferences.savedFeeds, + mergeFeedEnabled: preferences.feedViewPrefs.lab_mergeFeedEnabled, + mergeFeedSources: preferences.feeds.saved, } - }, [ - store.preferences.homeFeed.lab_mergeFeedEnabled, - store.preferences.savedFeeds, - ]) + }, [preferences]) useFocusEffect( React.useCallback(() => { |