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'
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 = {
metricsEvent: PropTypes.func,
t: PropTypes.func,
}
render() {
const { metricsEvent, 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 metricsEvent({
eventOpts: {
category: 'Onboarding',
action: 'Metrics Option',
name: 'Metrics Opt Out',
},
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(
metricsEvent({
eventOpts: {
category: 'Onboarding',
action: 'Metrics Option',
name: 'Metrics Opt In',
},
isOptIn: true,
flushImmediately: true,
}),
)
}
metrics.push(
metricsEvent({
eventOpts: {
category: 'Onboarding',
action: 'Import or Create',
name: firstTimeSelectionMetaMetricsName,
},
isOptIn: true,
metaMetricsId,
flushImmediately: true,
}),
)
await Promise.all(metrics)
} finally {
history.push(nextRoute)
}
}}
submitText={t('affirmAgree')}
submitButtonType="primary"
disabled={false}
/>
)
}
}