import Clipboard from '@react-native-clipboard/clipboard'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { StyleSheet, Text, TouchableOpacity } from 'react-native'
import AppAnalytics from 'src/analytics/AppAnalytics'
import { FiatExchangeEvents, HomeEvents } from 'src/analytics/Events'
import { Screens } from 'src/navigator/Screens'
import colors from 'src/styles/colors'
import { typeScale } from 'src/styles/fonts'
import { vibrateInformative } from 'src/styles/hapticFeedback'
import Logger from 'src/utils/Logger'
import { getAddressChunks } from 'src/utils/address'
interface Props {
address: string
touchDisabled?: boolean
location?: Screens
}
export default function AccountNumber({ address, touchDisabled, location }: Props) {
const { t } = useTranslation()
const onPressAddress = () => {
if (!address.length) {
return
}
Clipboard.setString(address)
Logger.showMessage(t('addressCopied'))
vibrateInformative()
if (location === Screens.TransactionDetailsScreen) {
AppAnalytics.track(HomeEvents.transaction_feed_address_copy)
}
if (location === Screens.ExternalExchanges) {
AppAnalytics.track(FiatExchangeEvents.cico_cash_out_copy_address)
}
if (location === Screens.SettingsMenu) {
AppAnalytics.track(HomeEvents.profile_address_copy)
}
}
const addressChunks = getAddressChunks(address)
const addressString = '0x ' + addressChunks.join(' ')
return touchDisabled ? (
{addressString}
) : (
{addressString}
{t('tapToCopy')}
)
}
const styles = StyleSheet.create({
line: {
justifyContent: 'flex-start',
flexDirection: 'row',
},
text: {
...typeScale.bodySmall,
color: colors.contentSecondary,
marginBottom: 8,
},
link: {
...typeScale.bodySmall,
textDecorationLine: 'underline',
color: colors.textLink,
},
})