diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/moments/MomentPostHeader.tsx | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/src/components/moments/MomentPostHeader.tsx b/src/components/moments/MomentPostHeader.tsx deleted file mode 100644 index 5f26951a..00000000 --- a/src/components/moments/MomentPostHeader.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import {useNavigation} from '@react-navigation/native'; -import React, {useState} from 'react'; -import { - StyleSheet, - Text, - TouchableOpacity, - View, - ViewProps, -} from 'react-native'; -import {useDispatch, useSelector, useStore} from 'react-redux'; -import {loadUserMoments} from '../../store/actions'; -import {RootState} from '../../store/rootReducer'; -import {MomentTagType, MomentType, ScreenType} from '../../types'; -import {fetchUserX, userXInStore} from '../../utils'; -import {MomentMoreInfoDrawer} from '../profile'; -import TaggAvatar from '../profile/TaggAvatar'; - -interface MomentPostHeaderProps extends ViewProps { - userXId?: string; - screenType: ScreenType; - username: string; - momentTagId: string; - removeTag: () => Promise<void>; - moment: MomentType; - tags: MomentTagType[]; -} - -const MomentPostHeader: React.FC<MomentPostHeaderProps> = ({ - userXId, - screenType, - username, - style, - momentTagId, - removeTag, - moment, - tags, -}) => { - const [drawerVisible, setDrawerVisible] = useState(false); - const dispatch = useDispatch(); - const navigation = useNavigation(); - const {userId: loggedInUserId, username: loggedInUserName} = useSelector( - (state: RootState) => state.user.user, - ); - const state: RootState = useStore().getState(); - const isOwnProfile = loggedInUserName === username; - const navigateToProfile = async () => { - if (userXId && !userXInStore(state, screenType, userXId)) { - await fetchUserX( - dispatch, - {userId: userXId, username: username}, - screenType, - ); - } - navigation.navigate('Profile', { - userXId: isOwnProfile ? undefined : userXId, - screenType, - }); - }; - - return ( - <View style={[styles.container, style]}> - <TouchableOpacity onPress={navigateToProfile} style={styles.header}> - <TaggAvatar - style={styles.avatar} - userXId={userXId} - screenType={screenType} - editable={false} - /> - <Text style={styles.headerText}>{username}</Text> - </TouchableOpacity> - <MomentMoreInfoDrawer - isOpen={drawerVisible} - setIsOpen={setDrawerVisible} - isOwnProfile={isOwnProfile} - momentTagId={momentTagId} - removeTag={removeTag} - dismissScreenAndUpdate={() => { - dispatch(loadUserMoments(loggedInUserId)); - navigation.goBack(); - }} - screenType={screenType} - moment={moment} - tags={tags} - /> - </View> - ); -}; - -const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: 'space-around', - flexDirection: 'row', - alignItems: 'center', - marginVertical: '2%', - }, - header: { - alignItems: 'center', - flexDirection: 'row', - flex: 1, - }, - avatar: { - flex: 0.2, - aspectRatio: 1, - borderRadius: 999999, - marginLeft: '3%', - }, - headerText: { - fontSize: 15, - fontWeight: 'bold', - color: 'white', - paddingHorizontal: '3%', - flex: 1, - }, -}); -export default MomentPostHeader; |