import {RouteProp} from '@react-navigation/native'; import {StackNavigationProp} from '@react-navigation/stack'; import React, {useEffect, useState} from 'react'; import {ScrollView, StatusBar, StyleSheet, View} from 'react-native'; import LinearGradient from 'react-native-linear-gradient'; import {useSelector} from 'react-redux'; import { AvatarTitle, SocialMediaInfo, TabsGradient, TaggPost, TwitterTaggPost, } from '../../components'; import TaggLoadingIndicator from '../../components/common/TaggLoadingIndicator'; import {AVATAR_GRADIENT} from '../../constants'; import {MainStackParams} from '../../routes'; import {RootState} from '../../store/rootReducer'; import {SimplePostType, SocialAccountType, TwitterPostType} from '../../types'; import {AvatarHeaderHeight, SCREEN_HEIGHT} from '../../utils'; type SocialMediaTaggsRouteProp = RouteProp; type SocialMediaTaggsNavigationProp = StackNavigationProp< MainStackParams, 'SocialMediaTaggs' >; interface SocialMediaTaggsProps { route: SocialMediaTaggsRouteProp; navigation: SocialMediaTaggsNavigationProp; } const SocialMediaTaggs: React.FC = ({ route, navigation, }) => { const [accountData, setAccountData] = useState({ posts: [], }); const {socialMediaType, userXId, screenType} = route.params; const { avatar, profile: {name}, } = useSelector((state: RootState) => userXId ? state.userX[screenType][userXId] : state.user, ); const {socialAccounts} = useSelector((state: RootState) => userXId ? state.userX[screenType][userXId] : state.socialAccounts, ); useEffect(() => { const currentSocialData = {...socialAccounts[socialMediaType]}; if (currentSocialData) { setAccountData(currentSocialData); } }, [socialAccounts, setAccountData]); useEffect(() => { navigation.setOptions({ headerTitle: () => { return ; }, }); }, [avatar, navigation]); return ( {/* Cropping the scroll view to mimic the presence of a header while preserving the gradient background */} {accountData?.posts && accountData.posts.length > 0 ? ( {( accountData?.posts as Array ).map((post, index) => socialMediaType === 'Twitter' ? ( ) : ( ), )} ) : ( )} ); }; const styles = StyleSheet.create({ contentContainer: { paddingBottom: SCREEN_HEIGHT / 15, }, flex: { flex: 1, }, }); export default SocialMediaTaggs;