import BigNumber from 'bignumber.js'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { StyleSheet, Text, View } from 'react-native'
import AppAnalytics from 'src/analytics/AppAnalytics'
import { HomeEvents } from 'src/analytics/Events'
import TokenDisplay from 'src/components/TokenDisplay'
import Touchable from 'src/components/Touchable'
import { navigate } from 'src/navigator/NavigationService'
import { Screens } from 'src/navigator/Screens'
import Colors from 'src/styles/colors'
import { typeScale } from 'src/styles/fonts'
import { Spacing } from 'src/styles/styles'
import variables from 'src/styles/variables'
import TransactionFeedItemImage from 'src/transactions/feed/TransactionFeedItemImage'
import { ClaimReward } from 'src/transactions/types'
interface DescriptionProps {
transaction: ClaimReward
}
function Description({ transaction }: DescriptionProps) {
const { t } = useTranslation()
const txAppName = transaction.appName
const title = t('transactionFeed.claimRewardTitle')
const subtitle = t('transactionFeed.claimRewardSubtitle', {
context: !txAppName ? 'noTxAppName' : undefined,
txAppName,
})
return (
{title}
{subtitle}
)
}
interface AmountDisplayProps {
transaction: ClaimReward
isLocal: boolean
}
function AmountDisplay({ transaction, isLocal }: AmountDisplayProps) {
const amountValue = new BigNumber(transaction.amount.value)
const tokenId = transaction.amount.tokenId
const textStyle = isLocal ? styles.amountSubtitle : [styles.amountTitle, { color: Colors.accent }]
return (
)
}
interface AmountProps {
transaction: ClaimReward
}
function Amount({ transaction }: AmountProps) {
return (
)
}
interface Props {
transaction: ClaimReward
}
export default function ClaimRewardFeedItem({ transaction }: Props) {
return (
{
AppAnalytics.track(HomeEvents.transaction_feed_item_select, {
itemType: transaction.type,
})
navigate(Screens.TransactionDetailsScreen, { transaction })
}}
>
)
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row',
paddingVertical: Spacing.Small12,
paddingHorizontal: variables.contentPadding,
alignItems: 'center',
},
contentContainer: {
flex: 1,
paddingHorizontal: variables.contentPadding,
},
title: {
...typeScale.labelMedium,
},
subtitle: {
...typeScale.bodySmall,
color: Colors.contentSecondary,
},
amountContainer: {
maxWidth: '50%',
},
amountTitle: {
...typeScale.labelMedium,
flexWrap: 'wrap',
textAlign: 'right',
},
amountSubtitle: {
...typeScale.bodySmall,
color: Colors.contentSecondary,
flexWrap: 'wrap',
textAlign: 'right',
},
})