From a647b6d866c04c23bf6e7d309033ad40582dc015 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Thu, 12 Sep 2019 14:36:47 -0230 Subject: [PATCH] Send metrics event for entering a/b test from confirm screen --- .../confirm-transaction.component.js | 18 ++++++++++++++++++ .../confirm-transaction.container.js | 15 +++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/ui/app/pages/confirm-transaction/confirm-transaction.component.js b/ui/app/pages/confirm-transaction/confirm-transaction.component.js index 9e7b01baf896..4b37cf2b1bc3 100644 --- a/ui/app/pages/confirm-transaction/confirm-transaction.component.js +++ b/ui/app/pages/confirm-transaction/confirm-transaction.component.js @@ -23,6 +23,10 @@ import { } from '../../helpers/constants/routes' export default class ConfirmTransaction extends Component { + static contextTypes = { + metricsEvent: PropTypes.func, + } + static propTypes = { history: PropTypes.object.isRequired, totalUnapprovedCount: PropTypes.number.isRequired, @@ -39,6 +43,8 @@ export default class ConfirmTransaction extends Component { paramsTransactionId: PropTypes.string, getTokenParams: PropTypes.func, isTokenMethodAction: PropTypes.bool, + fullScreenVsPopupTestGroup: PropTypes.string, + trackABTest: PropTypes.bool, } componentDidMount () { @@ -53,6 +59,8 @@ export default class ConfirmTransaction extends Component { paramsTransactionId, getTokenParams, isTokenMethodAction, + fullScreenVsPopupTestGroup, + trackABTest, } = this.props if (!totalUnapprovedCount && !send.to) { @@ -67,6 +75,16 @@ export default class ConfirmTransaction extends Component { } const txId = transactionId || paramsTransactionId if (txId) this.props.setTransactionToConfirm(txId) + + if (trackABTest) { + this.context.metricsEvent({ + eventOpts: { + category: 'abtesting', + action: 'fullScreenVsPopup', + name: fullScreenVsPopupTestGroup === 'fullScreen' ? 'fullscreen' : 'original', + }, + }) + } } componentDidUpdate (prevProps) { diff --git a/ui/app/pages/confirm-transaction/confirm-transaction.container.js b/ui/app/pages/confirm-transaction/confirm-transaction.container.js index 6da855df285a..058d5f6a99ae 100644 --- a/ui/app/pages/confirm-transaction/confirm-transaction.container.js +++ b/ui/app/pages/confirm-transaction/confirm-transaction.container.js @@ -20,7 +20,14 @@ import ConfirmTransaction from './confirm-transaction.component' import { unconfirmedTransactionsListSelector } from '../../selectors/confirm-transaction' const mapStateToProps = (state, ownProps) => { - const { metamask: { send, unapprovedTxs }, confirmTransaction } = state + const { + metamask: { + send, + unapprovedTxs, + abTests: { fullScreenVsPopup }, + }, + confirmTransaction, + } = state const { match: { params = {} } } = ownProps const { id } = params @@ -29,7 +36,9 @@ const mapStateToProps = (state, ownProps) => { const transaction = totalUnconfirmed ? unapprovedTxs[id] || unconfirmedTransactions[totalUnconfirmed - 1] : {} - const { id: transactionId, transactionCategory } = transaction + const { id: transactionId, transactionCategory, origin } = transaction + + const trackABTest = origin !== 'MetaMask' return { totalUnapprovedCount: totalUnconfirmed, @@ -42,6 +51,8 @@ const mapStateToProps = (state, ownProps) => { unconfirmedTransactions, transaction, isTokenMethodAction: isTokenMethodAction(transactionCategory), + trackABTest, + fullScreenVsPopupTestGroup: fullScreenVsPopup, } }