import { ParseEmojis } from '@components/Parse' import { useNavigation } from '@react-navigation/native' import { StackNavigationProp } from '@react-navigation/stack' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useCallback } from 'react' import { Pressable, StyleSheet, Text, View } from 'react-native' import analytics from './analytics' import GracefullyImage from './GracefullyImage' export interface Props { account: Mastodon.Account onPress?: () => void origin?: string } const ComponentAccount: React.FC = ({ account, onPress: customOnPress, origin }) => { const { theme } = useTheme() const navigation = useNavigation< StackNavigationProp >() const onPress = useCallback(() => { analytics('search_account_press', { page: origin }) navigation.push('Screen-Shared-Account', { account }) }, []) return ( @{account.acct} ) } const styles = StyleSheet.create({ itemDefault: { paddingHorizontal: StyleConstants.Spacing.Global.PagePadding, paddingVertical: StyleConstants.Spacing.M }, itemAccount: { flexDirection: 'row', alignItems: 'center' }, itemAccountAvatar: { alignSelf: 'flex-start', width: StyleConstants.Avatar.S, height: StyleConstants.Avatar.S, borderRadius: 6, marginRight: StyleConstants.Spacing.S }, itemAccountAcct: { marginTop: StyleConstants.Spacing.XS } }) export default ComponentAccount