import React, { useCallback, useEffect } from 'react'; import { StyleSheet, Image, View } from 'react-native'; import { useNavigation } from '@react-navigation/native'; import TextJS from '../../../Base/Text'; import StyledButton from '../../StyledButton'; import ScreenLayout from '../components/ScreenLayout'; import { getFiatOnRampAggNavbar } from '../../Navbar'; import { strings } from '../../../../../locales/i18n'; import { useTheme } from '../../../../util/theme'; import { useFiatOnRampSDK } from '../sdk'; import ErrorViewWithReportingJS from '../components/ErrorViewWithReporting'; import Routes from '../../../../constants/navigation/Routes'; import useAnalytics from '../hooks/useAnalytics'; /* eslint-disable import/no-commonjs, @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports */ const getStartedIcon = require('../components/images/WalletInfo.png'); // TODO: Convert into typescript and correctly type optionals const Text = TextJS as any; const ErrorViewWithReporting = ErrorViewWithReportingJS as any; const styles = StyleSheet.create({ listItem: { marginBottom: 20, }, title: { fontSize: 14, }, description: { marginVertical: 5, }, icon: { alignSelf: 'flex-start', fontSize: 28, marginTop: 1, textAlign: 'center', }, getStartedImageWrapper: { flexDirection: 'row', justifyContent: 'center' }, getStartedImage: { marginTop: 80, }, ctaWrapper: { marginBottom: 30, marginTop: 20, }, marginTop: { marginTop: 15, }, caption: { marginVertical: 22, }, }); const GetStarted: React.FC = () => { const navigation = useNavigation(); const { getStarted, setGetStarted, sdkError, selectedChainId, selectedRegion, } = useFiatOnRampSDK(); const trackEvent = useAnalytics(); const { colors } = useTheme(); const handleCancelPress = useCallback(() => { trackEvent('ONRAMP_CANCELED', { location: 'Get Started Screen', chain_id_destination: selectedChainId, }); }, [selectedChainId, trackEvent]); useEffect(() => { navigation.setOptions( getFiatOnRampAggNavbar( navigation, { title: strings('fiat_on_ramp_aggregator.onboarding.what_to_expect'), showBack: false, }, colors, handleCancelPress, ), ); }, [navigation, colors, handleCancelPress]); const handleOnPress = useCallback(() => { navigation.navigate(Routes.FIAT_ON_RAMP_AGGREGATOR.REGION); setGetStarted(true); }, [navigation, setGetStarted]); useEffect(() => { if (getStarted) { if (selectedRegion) { navigation.reset({ index: 0, routes: [ { name: Routes.FIAT_ON_RAMP_AGGREGATOR.AMOUNT_TO_BUY_HAS_STARTED, params: { showBack: false }, }, ], }); } else { navigation.reset({ index: 0, routes: [{ name: Routes.FIAT_ON_RAMP_AGGREGATOR.REGION_HAS_STARTED }], }); } } }, [getStarted, navigation, selectedRegion]); if (sdkError) { return ( ); } if (getStarted) { // Avoid flashing the original content when the user has already seen it return ; } return ( {strings('fiat_on_ramp_aggregator.onboarding.best_quotes')} {strings('fiat_on_ramp_aggregator.onboarding.benefits')} {strings('fiat_on_ramp_aggregator.onboarding.get_started')} ); }; export default GetStarted;