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 { FiatExchangeEvents } from 'src/analytics/Events'
import AppAnalytics from 'src/analytics/AppAnalytics'
import BackButton from 'src/components/BackButton'
import ListItem from 'src/components/ListItem'
import SendBar from 'src/home/SendBar'
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 { typeScale } from 'src/styles/fonts'
import variables from 'src/styles/variables'
import { useTokenInfo } from 'src/tokens/hooks'
import { Currency } from 'src/utils/currencies'
import { navigateToURI } from 'src/utils/linking'
export const externalExchangesScreenOptions = () => {
const eventName = FiatExchangeEvents.cico_external_exchanges_back
return {
...emptyHeader,
headerLeft: () => ,
headerTitle: i18n.t('exchanges'),
}
}
export interface ExternalExchangeProvider {
name: string
link: string
currencies: Currency[]
supportedRegions?: string[]
}
type Props = NativeStackScreenProps
function ExternalExchanges({ route }: Props) {
const { t } = useTranslation()
const providers = route.params?.exchanges
const tokenInfo = useTokenInfo(route.params.tokenId)
const goToExchange = (provider: ExternalExchangeProvider) => {
const { name, link } = provider
return () => {
AppAnalytics.track(FiatExchangeEvents.external_exchange_link, {
name,
link,
isCashIn: false,
})
navigateToURI(link)
}
}
return (
{t('youCanTransferOut', {
digitalAsset: tokenInfo?.symbol,
})}
{providers?.map((provider, index) => {
return (
{provider.name}
)
})}
{providers?.length ? : <>>}
)
}
const styles = StyleSheet.create({
container: {
flex: 1,
paddingBottom: variables.contentPadding,
},
pleaseSelectExchange: {
...typeScale.bodyMedium,
paddingHorizontal: variables.contentPadding,
paddingBottom: variables.contentPadding,
},
providerListItem: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
flex: 4,
},
optionTitle: {
flex: 3,
...typeScale.bodyMedium,
},
})
export default ExternalExchanges