diff options
Diffstat (limited to 'src/view/screens/content/Profile.tsx')
-rw-r--r-- | src/view/screens/content/Profile.tsx | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/src/view/screens/content/Profile.tsx b/src/view/screens/content/Profile.tsx index cfbf840f3..ccdaed4a4 100644 --- a/src/view/screens/content/Profile.tsx +++ b/src/view/screens/content/Profile.tsx @@ -1,16 +1,43 @@ -import React from 'react' +import React, {useState, useEffect} from 'react' import {Shell} from '../../shell' -import {View, Text} from 'react-native' import type {RootTabsScreenProps} from '../../routes/types' +import {FeedViewModel} from '../../../state/models/feed-view' +import {useStores} from '../../../state' +import {ProfileHeader} from '../../com/profile/ProfileHeader' +import {Feed} from '../../com/feed/Feed' + +export const Profile = ({ + navigation, + route, +}: RootTabsScreenProps<'Profile'>) => { + const store = useStores() + const [feedView, setFeedView] = useState<FeedViewModel | undefined>() + + useEffect(() => { + if (feedView?.params.author === route.params.name) { + console.log('Profile feed view') + return // no change needed? or trigger refresh? + } + console.log('Fetching profile feed view', route.params.name) + const newFeedView = new FeedViewModel(store, {author: route.params.name}) + setFeedView(newFeedView) + newFeedView.setup().catch(err => console.error('Failed to fetch feed', err)) + }, [route.params.name, feedView?.params.author, store]) + + const onNavigateContent = (screen: string, props: Record<string, string>) => { + // @ts-ignore it's up to the callers to supply correct params -prf + navigation.push(screen, props) + } -export const Profile = ({route}: RootTabsScreenProps<'Profile'>) => { return ( <Shell> - <View style={{justifyContent: 'center', alignItems: 'center'}}> - <Text style={{fontSize: 20, fontWeight: 'bold'}}> - {route.params?.name}'s profile - </Text> - </View> + <ProfileHeader + user={route.params.name} + onNavigateContent={onNavigateContent} + /> + {feedView && ( + <Feed feed={feedView} onNavigateContent={onNavigateContent} /> + )} </Shell> ) } |