import React, { Component } from 'react'
import PropTypes from 'prop-types'
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,
}
render () {
const { metricsEvent } = this.context
const {
nextRoute,
history,
setParticipateInMetaMetrics,
firstTimeSelectionMetaMetricsName,
participateInMetaMetrics,
} = this.props
return (
Help Us Improve MetaMask
MetaMask would like to gather usage data to better understand how our users interact with the extension. This data
will be used to continually improve the usability and user experience of our product and the Ethereum ecosystem.
MetaMask will..
Always allow you to opt-out via Settings
Send anonymized click & pageview events
Maintain a public aggregate dashboard to educate the community
Never collect keys, addresses, transactions, balances, hashes, or any personal information
Never collect your full IP address
Never sell data for profit. Ever!
{
setParticipateInMetaMetrics(false)
.then(() => {
const promise = participateInMetaMetrics !== false
? metricsEvent({
eventOpts: {
category: 'Onboarding',
action: 'Metrics Option',
name: 'Metrics Opt Out',
},
isOptIn: true,
})
: Promise.resolve()
promise
.then(() => {
history.push(nextRoute)
})
})
}}
cancelText={'No Thanks'}
hideCancel={false}
onSubmit={() => {
setParticipateInMetaMetrics(true)
.then(([participateStatus, metaMetricsId]) => {
const promise = participateInMetaMetrics !== true
? metricsEvent({
eventOpts: {
category: 'Onboarding',
action: 'Metrics Option',
name: 'Metrics Opt In',
},
isOptIn: true,
})
: Promise.resolve()
promise
.then(() => {
return metricsEvent({
eventOpts: {
category: 'Onboarding',
action: 'Import or Create',
name: firstTimeSelectionMetaMetricsName,
},
isOptIn: true,
metaMetricsId,
})
})
.then(() => {
history.push(nextRoute)
})
})
}}
submitText={'I agree'}
submitButtonType={'primary'}
disabled={false}
/>
This data is aggregated and is therefore anonymous for the purposes of General Data Protection Regulation (EU) 2016/679. For more information in relation to our privacy practices, please see our
Privacy Policy here
.
)
}
}