@@ -18,6 +18,7 @@ import {isThreadChildAt, isThreadParentAt} from '#/view/com/posts/PostFeed'
1818import { ViewFullThread } from '#/view/com/posts/ViewFullThread'
1919import { FAB } from '#/view/com/util/fab/FAB'
2020import { List , type ListMethods } from '#/view/com/util/List'
21+ import { LoadLatestBtn } from '#/view/com/util/load-latest/LoadLatestBtn'
2122import { MainScrollProvider } from '#/view/com/util/MainScrollProvider'
2223import { atoms as a , useTheme } from '#/alf'
2324import { useHeaderOffset } from '#/components/hooks/useHeaderOffset'
@@ -113,6 +114,7 @@ export function CommunityFeedPage({isPageFocused}: {isPageFocused: boolean}) {
113114 } , [ slices ] )
114115
115116 const [ isRefreshing , setIsRefreshing ] = useState ( false )
117+ const [ isScrolledDown , setIsScrolledDown ] = useState ( false )
116118 const onRefresh = useCallback ( async ( ) => {
117119 setIsRefreshing ( true )
118120 try {
@@ -132,7 +134,7 @@ export function CommunityFeedPage({isPageFocused}: {isPageFocused: boolean}) {
132134 return ( ) => clearInterval ( id )
133135 } , [ isPageFocused , refetch ] )
134136
135- const _onScrollToTop = useCallback ( ( ) => {
137+ const onPressLoadLatest = useCallback ( ( ) => {
136138 scrollElRef . current ?. scrollToOffset ( {
137139 animated : IS_NATIVE ,
138140 offset : - headerOffset ,
@@ -251,8 +253,16 @@ export function CommunityFeedPage({isPageFocused}: {isPageFocused: boolean}) {
251253 contentContainerStyle = { { paddingBottom : 100 } }
252254 refreshing = { isRefreshing }
253255 onRefresh = { onRefresh }
256+ onScrolledDownChange = { setIsScrolledDown }
254257 />
255258 </ MainScrollProvider >
259+ { isScrolledDown && (
260+ < LoadLatestBtn
261+ onPress = { onPressLoadLatest }
262+ label = { _ ( msg `Load new posts` ) }
263+ showIndicator = { false }
264+ />
265+ ) }
256266 { hasSession && (
257267 < FAB
258268 testID = "composeFAB"
0 commit comments