import { NativeStackScreenProps } from '@react-navigation/native-stack'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { SafeAreaView, ScrollView, StyleSheet, Text, View } from 'react-native'
import AppAnalytics from 'src/analytics/AppAnalytics'
import { FiatExchangeEvents } from 'src/analytics/Events'
import BackButton from 'src/components/BackButton'
import ListItem from 'src/components/ListItem'
import { SPEND_MERCHANT_LINKS } from 'src/config'
import i18n from 'src/i18n'
import LinkArrow from 'src/icons/LinkArrow'
import { emptyHeader } from 'src/navigator/Headers'
import { Screens } from 'src/navigator/Screens'
import { StackParamList } from 'src/navigator/types'
import colors from 'src/styles/colors'
import { typeScale } from 'src/styles/fonts'
import variables from 'src/styles/variables'
import { navigateToURI } from 'src/utils/linking'
export const spendScreenOptions = () => {
const eventName = FiatExchangeEvents.cico_spend_select_provider_back
return {
...emptyHeader,
headerLeft: () => ,
headerTitle: i18n.t('spend'),
}
}
export interface SpendMerchant {
name: string
link: string
subtitleKey?: string
}
type Props = NativeStackScreenProps
function Spend(props: Props) {
const goToMerchant = (merchant: SpendMerchant) => {
const { name, link } = merchant
return () => {
AppAnalytics.track(FiatExchangeEvents.spend_merchant_link, {
name,
link,
})
navigateToURI(link)
}
}
const { t } = useTranslation()
// TODO Dynamically fetch merchant links so they can be updated between releases
const merchants: SpendMerchant[] = SPEND_MERCHANT_LINKS
return (
{t('useBalanceWithMerchants')}
{merchants
.filter((merchant) => !!merchant.link)
.map((merchant) => {
return (
{merchant.name}
{!!merchant.subtitleKey && (
{t(merchant.subtitleKey)}
)}
)
})}
)
}
const styles = StyleSheet.create({
container: {
paddingVertical: variables.contentPadding,
},
pleaseSelectProvider: {
...typeScale.bodyMedium,
paddingHorizontal: variables.contentPadding,
paddingBottom: variables.contentPadding,
},
providerListItem: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
},
optionTitle: {
...typeScale.bodyMedium,
},
optionSubtitle: {
...typeScale.bodySmall,
color: colors.contentSecondary,
},
})
export default Spend