import React, { Component } from 'react'; import PropTypes from 'prop-types'; import MetaFoxLogo from '../../../components/ui/metafox-logo'; import PageContainerFooter from '../../../components/ui/page-container/page-container-footer'; import { EVENT } from '../../../../shared/constants/metametrics'; export default class MetaMetricsOptIn extends Component { static propTypes = { history: PropTypes.object, setParticipateInMetaMetrics: PropTypes.func, nextRoute: PropTypes.string, firstTimeSelectionMetaMetricsName: PropTypes.string, participateInMetaMetrics: PropTypes.bool, }; static contextTypes = { trackEvent: PropTypes.func, t: PropTypes.func, }; render() { const { trackEvent, t } = this.context; const { nextRoute, history, setParticipateInMetaMetrics, firstTimeSelectionMetaMetricsName, participateInMetaMetrics, } = this.props; return (
{t('metametricsHelpImproveMetaMask')}
{t('metametricsOptInDescription')}
{t('metametricsCommitmentsIntro')}
{t('metametricsCommitmentsAllowOptOut')}
{t('metametricsCommitmentsSendAnonymizedEvents')}
{t('metametricsCommitmentsNeverCollectKeysEtc', [ {t('metametricsCommitmentsBoldNever')} , ])}
{t('metametricsCommitmentsNeverCollectIP', [ {t('metametricsCommitmentsBoldNever')} , ])}
{t('metametricsCommitmentsNeverSellDataForProfit', [ {t('metametricsCommitmentsBoldNever')} , ])}
{ await setParticipateInMetaMetrics(false); try { if ( participateInMetaMetrics === null || participateInMetaMetrics === true ) { await trackEvent( { category: EVENT.CATEGORIES.ONBOARDING, event: 'Metrics Opt Out', properties: { action: 'Metrics Option', legacy_event: true, }, }, { isOptIn: true, flushImmediately: true, }, ); } } finally { history.push(nextRoute); } }} cancelText={t('noThanks')} hideCancel={false} onSubmit={async () => { const [, metaMetricsId] = await setParticipateInMetaMetrics( true, ); try { const metrics = []; if ( participateInMetaMetrics === null || participateInMetaMetrics === false ) { metrics.push( trackEvent( { category: EVENT.CATEGORIES.ONBOARDING, event: 'Metrics Opt In', properties: { action: 'Metrics Option', legacy_event: true, }, }, { isOptIn: true, flushImmediately: true, }, ), ); } metrics.push( trackEvent( { category: EVENT.CATEGORIES.ONBOARDING, event: firstTimeSelectionMetaMetricsName, properties: { action: 'Import or Create', legacy_event: true, }, }, { isOptIn: true, metaMetricsId, flushImmediately: true, }, ), ); await Promise.all(metrics); } finally { history.push(nextRoute); } }} submitText={t('affirmAgree')} disabled={false} />
{t('gdprMessage', [ {t('gdprMessagePrivacyPolicy')} , ])}
); } }