mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Add onbeforeunload and have it call onCancel (#7335)
* Add onbeforeunload and have it call onCancel * Address PR feedback * Get integration tests passing again * Add underscores * Add ENVIRONMENT_TYPE_NOTIFICATION check * Add _beforeUnload + metricsEvent
This commit is contained in:
parent
b27b568c32
commit
02aebc2e03
@ -2,6 +2,8 @@ import PropTypes from 'prop-types'
|
||||
import React, {PureComponent} from 'react'
|
||||
import { ProviderPageContainerContent, ProviderPageContainerHeader } from '.'
|
||||
import { PageContainerFooter } from '../../ui/page-container'
|
||||
import { ENVIRONMENT_TYPE_NOTIFICATION } from '../../../../../app/scripts/lib/enums'
|
||||
import { getEnvironmentType } from '../../../../../app/scripts/lib/util'
|
||||
|
||||
export default class ProviderPageContainer extends PureComponent {
|
||||
static propTypes = {
|
||||
@ -20,6 +22,9 @@ export default class ProviderPageContainer extends PureComponent {
|
||||
};
|
||||
|
||||
componentDidMount () {
|
||||
if (getEnvironmentType(window.location.href) === ENVIRONMENT_TYPE_NOTIFICATION) {
|
||||
window.addEventListener('beforeunload', this._beforeUnload)
|
||||
}
|
||||
this.context.metricsEvent({
|
||||
eventOpts: {
|
||||
category: 'Auth',
|
||||
@ -29,6 +34,27 @@ export default class ProviderPageContainer extends PureComponent {
|
||||
})
|
||||
}
|
||||
|
||||
_beforeUnload () {
|
||||
const { origin, rejectProviderRequestByOrigin } = this.props
|
||||
this.context.metricsEvent({
|
||||
eventOpts: {
|
||||
category: 'Auth',
|
||||
action: 'Connect',
|
||||
name: 'Cancel Connect Request Via Notification Close',
|
||||
},
|
||||
})
|
||||
this._removeBeforeUnload()
|
||||
rejectProviderRequestByOrigin(origin)
|
||||
}
|
||||
|
||||
_removeBeforeUnload () {
|
||||
window.removeEventListener('beforeunload', this._beforeUnload)
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
this._removeBeforeUnload()
|
||||
}
|
||||
|
||||
onCancel = () => {
|
||||
const { origin, rejectProviderRequestByOrigin } = this.props
|
||||
this.context.metricsEvent({
|
||||
@ -38,6 +64,7 @@ export default class ProviderPageContainer extends PureComponent {
|
||||
name: 'Canceled',
|
||||
},
|
||||
})
|
||||
this._removeBeforeUnload()
|
||||
rejectProviderRequestByOrigin(origin)
|
||||
}
|
||||
|
||||
@ -50,6 +77,7 @@ export default class ProviderPageContainer extends PureComponent {
|
||||
name: 'Confirmed',
|
||||
},
|
||||
})
|
||||
this._removeBeforeUnload()
|
||||
approveProviderRequestByOrigin(origin)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user