diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-03-22 10:46:09 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-22 10:46:09 -0500 |
commit | 2dc774788b1a48172dc8446aa310ad4ada256c60 (patch) | |
tree | 244ed79e14bb490abb9f913132d57162a838b74e /src/view/com/posts/Feed.tsx | |
parent | 4f814207bcff3eb441e8bc196d274fc6adef5405 (diff) | |
download | voidsky-2dc774788b1a48172dc8446aa310ad4ada256c60.tar.zst |
Move the feed selector to the header (#352)
* Reorg pager components into their own folder * Move the feed selector to the header * Fix lint
Diffstat (limited to 'src/view/com/posts/Feed.tsx')
-rw-r--r-- | src/view/com/posts/Feed.tsx | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 45cf2cc29..4154cbe75 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -8,9 +8,8 @@ import { View, ViewStyle, } from 'react-native' -import {CenteredView, FlatList} from '../util/Views' +import {FlatList} from '../util/Views' import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' -import {ViewHeader} from '../util/ViewHeader' import {ErrorMessage} from '../util/error/ErrorMessage' import {FeedModel} from 'state/models/feed-view' import {FeedSlice} from './FeedSlice' @@ -19,9 +18,9 @@ import {s} from 'lib/styles' import {useAnalytics} from 'lib/analytics' import {usePalette} from 'lib/hooks/usePalette' -const HEADER_ITEM = {_reactKey: '__header__'} +const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} -const ERROR_FEED_ITEM = {_reactKey: '__error__'} +const ERROR_ITEM = {_reactKey: '__error__'} export const Feed = observer(function Feed({ feed, @@ -49,19 +48,21 @@ export const Feed = observer(function Feed({ const [isRefreshing, setIsRefreshing] = React.useState(false) const data = React.useMemo(() => { - let feedItems: any[] = [HEADER_ITEM] + let feedItems: any[] = [] if (feed.hasLoaded) { if (feed.hasError) { - feedItems = feedItems.concat([ERROR_FEED_ITEM]) + feedItems = feedItems.concat([ERROR_ITEM]) } if (feed.isEmpty) { feedItems = feedItems.concat([EMPTY_FEED_ITEM]) } else { feedItems = feedItems.concat(feed.slices) } + } else if (feed.isLoading) { + feedItems = feedItems.concat([LOADING_ITEM]) } return feedItems - }, [feed.hasError, feed.hasLoaded, feed.isEmpty, feed.slices]) + }, [feed.hasError, feed.hasLoaded, feed.isLoading, feed.isEmpty, feed.slices]) // events // = @@ -96,15 +97,15 @@ export const Feed = observer(function Feed({ return renderEmptyState() } return <View /> - } else if (item === ERROR_FEED_ITEM) { + } else if (item === ERROR_ITEM) { return ( <ErrorMessage message={feed.error} onPressTryAgain={onPressTryAgain} /> ) - } else if (item === HEADER_ITEM) { - return <ViewHeader title="Bluesky" canGoBack={false} /> + } else if (item === LOADING_ITEM) { + return <PostFeedLoadingPlaceholder /> } return <FeedSlice slice={item} showFollowBtn={showPostFollowBtn} /> }, @@ -125,11 +126,6 @@ export const Feed = observer(function Feed({ return ( <View testID={testID} style={style}> - {feed.isLoading && data.length === 0 && ( - <CenteredView style={{paddingTop: headerOffset}}> - <PostFeedLoadingPlaceholder /> - </CenteredView> - )} {data.length > 0 && ( <FlatList ref={scrollElRef} |