diff options
author | Eric Bailey <git@esb.lol> | 2023-12-04 18:24:51 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-04 16:24:51 -0800 |
commit | 4f171be9bf6c0ffb6c1951e30c95fc0b30aa22b4 (patch) | |
tree | e00e66fbfb0fda89efbe87f3266f11baee01eb22 /src/view/com/posts | |
parent | 6e2eaa746df70bde99e83b6fd3e491a0a93135cd (diff) | |
download | voidsky-4f171be9bf6c0ffb6c1951e30c95fc0b30aa22b4.tar.zst |
Fix bottom space on feeds (#2081)
* Fix bottom space on feeds * Translate * Handle web better
Diffstat (limited to 'src/view/com/posts')
-rw-r--r-- | src/view/com/posts/Feed.tsx | 33 | ||||
-rw-r--r-- | src/view/com/posts/FollowingEndOfFeed.tsx | 9 |
2 files changed, 27 insertions, 15 deletions
diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index f0f7cd919..b9ca9abdc 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -26,6 +26,7 @@ import { pollLatest, } from '#/state/queries/post-feed' import {useModerationOpts} from '#/state/queries/preferences' +import {isWeb} from '#/platform/detection' const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} @@ -216,19 +217,25 @@ let Feed = ({ const shouldRenderEndOfFeed = !hasNextPage && !isEmpty && !isFetching && !isError && !!renderEndOfFeed - const FeedFooter = React.useCallback( - () => - isFetchingNextPage ? ( - <View style={styles.feedFooter}> - <ActivityIndicator /> - </View> - ) : shouldRenderEndOfFeed ? ( - renderEndOfFeed() - ) : ( - <View /> - ), - [isFetchingNextPage, shouldRenderEndOfFeed, renderEndOfFeed], - ) + const FeedFooter = React.useCallback(() => { + /** + * A bit of padding at the bottom of the feed as you scroll and when you + * reach the end, so that content isn't cut off by the bottom of the + * screen. + */ + const offset = Math.max(headerOffset, 32) * (isWeb ? 1 : 2) + + return isFetchingNextPage ? ( + <View style={[styles.feedFooter]}> + <ActivityIndicator /> + <View style={{height: offset}} /> + </View> + ) : shouldRenderEndOfFeed ? ( + <View style={{minHeight: offset}}>{renderEndOfFeed()}</View> + ) : ( + <View style={{height: offset}} /> + ) + }, [isFetchingNextPage, shouldRenderEndOfFeed, renderEndOfFeed, headerOffset]) const scrollHandler = useAnimatedScrollHandler(onScroll || {}) return ( diff --git a/src/view/com/posts/FollowingEndOfFeed.tsx b/src/view/com/posts/FollowingEndOfFeed.tsx index 48724d8b3..6630b9a83 100644 --- a/src/view/com/posts/FollowingEndOfFeed.tsx +++ b/src/view/com/posts/FollowingEndOfFeed.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {StyleSheet, View} from 'react-native' +import {StyleSheet, View, Dimensions} from 'react-native' import {useNavigation} from '@react-navigation/native' import { FontAwesomeIcon, @@ -36,7 +36,12 @@ export function FollowingEndOfFeed() { }, [navigation]) return ( - <View style={[styles.container, pal.border]}> + <View + style={[ + styles.container, + pal.border, + {minHeight: Dimensions.get('window').height * 0.75}, + ]}> <View style={styles.inner}> <Text type="xl-medium" style={[s.textCenter, pal.text]}> You've reached the end of your feed! Find some more accounts to |