diff options
Diffstat (limited to 'src/view/screens/Profile.tsx')
-rw-r--r-- | src/view/screens/Profile.tsx | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index b6d92e46b..a34ceb32c 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -9,7 +9,7 @@ import {CenteredView} from '../com/util/Views' import {ScreenHider} from 'view/com/util/moderation/ScreenHider' import {ProfileUiModel, Sections} from 'state/models/ui/profile' import {useStores} from 'state/index' -import {PostsFeedSliceModel} from 'state/models/feeds/posts' +import {PostsFeedSliceModel} from 'state/models/feeds/post' import {ProfileHeader} from '../com/profile/ProfileHeader' import {FeedSlice} from '../com/posts/FeedSlice' import {ListCard} from 'view/com/lists/ListCard' @@ -25,6 +25,8 @@ import {FAB} from '../com/util/fab/FAB' import {s, colors} from 'lib/styles' import {useAnalytics} from 'lib/analytics' import {ComposeIcon2} from 'lib/icons' +import {CustomFeed} from 'view/com/feeds/CustomFeed' +import {CustomFeedModel} from 'state/models/feeds/custom-feed' import {useSetTitle} from 'lib/hooks/useSetTitle' import {combinedDisplayName} from 'lib/strings/display-names' @@ -45,6 +47,10 @@ export const ProfileScreen = withAuthRequired( ) useSetTitle(combinedDisplayName(uiState.profile)) + useEffect(() => { + setHasSetup(false) + }, [route.params.name]) + useFocusEffect( React.useCallback(() => { let aborted = false @@ -118,6 +124,7 @@ export const ProfileScreen = withAuthRequired( }, [uiState.showLoadingMoreFooter]) const renderItem = React.useCallback( (item: any) => { + // if section is lists if (uiState.selectedView === Sections.Lists) { if (item === ProfileUiModel.LOADING_ITEM) { return <ProfileCardFeedLoadingPlaceholder /> @@ -142,6 +149,32 @@ export const ProfileScreen = withAuthRequired( } else { return <ListCard testID={`list-${item.name}`} list={item} /> } + // if section is custom algorithms + } else if (uiState.selectedView === Sections.CustomAlgorithms) { + if (item === ProfileUiModel.LOADING_ITEM) { + return <ProfileCardFeedLoadingPlaceholder /> + } else if (item._reactKey === '__error__') { + return ( + <View style={s.p5}> + <ErrorMessage + message={item.error} + onPressTryAgain={onPressTryAgain} + /> + </View> + ) + } else if (item === ProfileUiModel.EMPTY_ITEM) { + return ( + <EmptyState + testID="customAlgorithmsEmpty" + icon="list-ul" + message="No custom algorithms yet!" + style={styles.emptyState} + /> + ) + } else if (item instanceof CustomFeedModel) { + return <CustomFeed item={item} showSaveBtn showLikes /> + } + // if section is posts or posts & replies } else { if (item === ProfileUiModel.END_ITEM) { return <Text style={styles.endItem}>- end of feed -</Text> |