Move headerMode out of global shell state (#10527)
This commit is contained in:
@@ -21,7 +21,6 @@ import {type FeedDescriptor, type FeedParams} from '#/state/queries/post-feed'
|
||||
import {usePreferencesQuery} from '#/state/queries/preferences'
|
||||
import {type UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
|
||||
import {useSession} from '#/state/session'
|
||||
import {useMinimalShellMode} from '#/state/shell'
|
||||
import {useLoggedOutViewControls} from '#/state/shell/logged-out'
|
||||
import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed'
|
||||
import {FeedPage} from '#/view/com/feeds/FeedPage'
|
||||
@@ -34,6 +33,10 @@ import {
|
||||
import {CustomFeedEmptyState} from '#/view/com/posts/CustomFeedEmptyState'
|
||||
import {FollowingEmptyState} from '#/view/com/posts/FollowingEmptyState'
|
||||
import {FollowingEndOfFeed} from '#/view/com/posts/FollowingEndOfFeed'
|
||||
import {
|
||||
HomeHeaderModeProvider,
|
||||
useHomeHeaderMode,
|
||||
} from '#/view/com/util/MainScrollProvider'
|
||||
import {NoFeedsPinned} from '#/screens/Home/NoFeedsPinned'
|
||||
import * as Layout from '#/components/Layout'
|
||||
import {useAnalytics} from '#/analytics'
|
||||
@@ -81,11 +84,13 @@ export function HomeScreen(props: Props) {
|
||||
if (preferences && pinnedFeedInfos && !isPinnedFeedsLoading) {
|
||||
return (
|
||||
<Layout.Screen testID="HomeScreen" noInsetTop={IS_LIQUID_GLASS}>
|
||||
<HomeScreenReady
|
||||
{...props}
|
||||
preferences={preferences}
|
||||
pinnedFeedInfos={pinnedFeedInfos}
|
||||
/>
|
||||
<HomeHeaderModeProvider>
|
||||
<HomeScreenReady
|
||||
{...props}
|
||||
preferences={preferences}
|
||||
pinnedFeedInfos={pinnedFeedInfos}
|
||||
/>
|
||||
</HomeHeaderModeProvider>
|
||||
</Layout.Screen>
|
||||
)
|
||||
} else {
|
||||
@@ -139,7 +144,7 @@ function HomeScreenReady({
|
||||
}, [selectedIndex])
|
||||
|
||||
const {hasSession} = useSession()
|
||||
const {headerMode} = useMinimalShellMode()
|
||||
const headerMode = useHomeHeaderMode()
|
||||
const showHeader = useCallback(() => {
|
||||
'worklet'
|
||||
headerMode.set(() => withSpring(0, {overshootClamping: true}))
|
||||
|
||||
@@ -27,7 +27,6 @@ import {TabBar} from '#/view/com/pager/TabBar'
|
||||
import {FAB} from '#/view/com/util/fab/FAB'
|
||||
import {type ListMethods} from '#/view/com/util/List'
|
||||
import {LoadLatestBtn} from '#/view/com/util/load-latest/LoadLatestBtn'
|
||||
import {MainScrollProvider} from '#/view/com/util/MainScrollProvider'
|
||||
import {atoms as a, useTheme, web} from '#/alf'
|
||||
import {Admonition} from '#/components/Admonition'
|
||||
import {ButtonIcon} from '#/components/Button'
|
||||
@@ -254,20 +253,18 @@ function NotificationsTab({
|
||||
|
||||
return (
|
||||
<>
|
||||
<MainScrollProvider>
|
||||
<NotificationFeed
|
||||
enabled={isFocusedAndActive}
|
||||
filter={filter}
|
||||
refreshNotifications={() => checkUnread({invalidate: true})}
|
||||
onScrolledDownChange={setIsScrolledDown}
|
||||
scrollElRef={scrollElRef}
|
||||
ListHeaderComponent={
|
||||
filter === 'mentions' ? (
|
||||
<DisabledNotificationsWarning active={isFocusedAndActive} />
|
||||
) : null
|
||||
}
|
||||
/>
|
||||
</MainScrollProvider>
|
||||
<NotificationFeed
|
||||
enabled={isFocusedAndActive}
|
||||
filter={filter}
|
||||
refreshNotifications={() => checkUnread({invalidate: true})}
|
||||
onScrolledDownChange={setIsScrolledDown}
|
||||
scrollElRef={scrollElRef}
|
||||
ListHeaderComponent={
|
||||
filter === 'mentions' ? (
|
||||
<DisabledNotificationsWarning active={isFocusedAndActive} />
|
||||
) : null
|
||||
}
|
||||
/>
|
||||
{(isScrolledDown || hasNew) && (
|
||||
<LoadLatestBtn
|
||||
onPress={onPressLoadLatest}
|
||||
|
||||
Reference in New Issue
Block a user