import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import Button from '../../../components/ui/button'; import MetaFoxLogo from '../../../components/ui/metafox-logo'; import { EVENT, EVENT_NAMES } from '../../../../shared/constants/metametrics'; import { INITIALIZE_CREATE_PASSWORD_ROUTE, INITIALIZE_IMPORT_WITH_SEED_PHRASE_ROUTE, } from '../../../helpers/constants/routes'; export default class SelectAction extends PureComponent { static propTypes = { history: PropTypes.object, isInitialized: PropTypes.bool, setFirstTimeFlowType: PropTypes.func, nextRoute: PropTypes.string, metaMetricsId: PropTypes.string, }; static contextTypes = { trackEvent: PropTypes.func, t: PropTypes.func, }; componentDidMount() { const { history, isInitialized, nextRoute } = this.props; if (isInitialized) { history.push(nextRoute); } } handleCreate = () => { const { metaMetricsId } = this.props; const { trackEvent } = this.context; this.props.setFirstTimeFlowType('create'); trackEvent( { category: EVENT.CATEGORIES.ONBOARDING, event: EVENT_NAMES.WALLET_SETUP_STARTED, properties: { account_type: EVENT.ACCOUNT_TYPES.DEFAULT, }, }, { isOptIn: true, metaMetricsId, flushImmediately: true, }, ); this.props.history.push(INITIALIZE_CREATE_PASSWORD_ROUTE); }; handleImport = () => { const { metaMetricsId } = this.props; const { trackEvent } = this.context; this.props.setFirstTimeFlowType('import'); trackEvent( { category: EVENT.CATEGORIES.ONBOARDING, event: EVENT_NAMES.WALLET_SETUP_STARTED, properties: { account_type: EVENT.ACCOUNT_TYPES.IMPORTED, }, }, { isOptIn: true, metaMetricsId, flushImmediately: true, }, ); this.props.history.push(INITIALIZE_IMPORT_WITH_SEED_PHRASE_ROUTE); }; render() { const { t } = this.context; return ( <div className="select-action"> <MetaFoxLogo /> <div className="select-action__wrapper"> <div className="select-action__body"> <div className="select-action__body-header"> {t('newToMetaMask')} </div> <div className="select-action__select-buttons"> <div className="select-action__select-button"> <div className="select-action__button-content"> <div className="select-action__button-symbol"> <i className="fa fa-download fa-2x" /> </div> <div className="select-action__button-text-big"> {t('noAlreadyHaveSeed')} </div> <div className="select-action__button-text-small"> {t('importYourExisting')} </div> </div> <Button type="primary" className="first-time-flow__button" onClick={this.handleImport} data-testid="import-wallet-button" > {t('importWallet')} </Button> </div> <div className="select-action__select-button"> <div className="select-action__button-content"> <div className="select-action__button-symbol"> <i className="fa fa-plus fa-2x" /> </div> <div className="select-action__button-text-big"> {t('letsGoSetUp')} </div> <div className="select-action__button-text-small"> {t('thisWillCreate')} </div> </div> <Button type="primary" className="first-time-flow__button" onClick={this.handleCreate} data-testid="create-wallet-button" > {t('createAWallet')} </Button> </div> </div> </div> </div> </div> ); } }