diff --git a/ui/app/components/app/modals/modal.js b/ui/app/components/app/modals/modal.js
index 90057f7e0..46ca0cce6 100644
--- a/ui/app/components/app/modals/modal.js
+++ b/ui/app/components/app/modals/modal.js
@@ -1,6 +1,6 @@
+import PropTypes from 'prop-types'
import React, { Component } from 'react'
-import { inherits } from 'util'
import { connect } from 'react-redux'
import * as actions from '../../../store/actions'
import { resetCustomData as resetCustomGasData } from '../../../ducks/gas/gas.duck'
@@ -464,61 +464,59 @@ function mapDispatchToProps (dispatch) {
}
}
-// Global Modal Component
-inherits(Modal, Component)
-function Modal () {
- Component.call(this)
+class Modal extends Component {
+ static propTypes = {
+ active: PropTypes.bool.isRequired,
+ hideModal: PropTypes.func.isRequired,
+ hideWarning: PropTypes.func.isRequired,
+ modalState: PropTypes.object.isRequired,
+ }
+
+ hide () {
+ this.modalRef.hide()
+ }
+
+ show () {
+ this.modalRef.show()
+ }
+
+ UNSAFE_componentWillReceiveProps (nextProps, _) {
+ if (nextProps.active) {
+ this.show()
+ } else if (this.props.active) {
+ this.hide()
+ }
+ }
+
+ render () {
+ const modal = MODALS[this.props.modalState.name || 'DEFAULT']
+ const { contents: children, disableBackdropClick = false } = modal
+ const modalStyle = modal[isMobileView() ? 'mobileModalStyle' : 'laptopModalStyle']
+ const contentStyle = modal.contentStyle || {}
+
+ return (
+ {
+ if (modal.onHide) {
+ modal.onHide({
+ hideWarning: this.props.hideWarning,
+ })
+ }
+ this.props.hideModal(modal.customOnHideOpts)
+ }}
+ ref={(ref) => {
+ this.modalRef = ref
+ }}
+ modalStyle={modalStyle}
+ contentStyle={contentStyle}
+ backdropStyle={BACKDROPSTYLE}
+ closeOnClick={!disableBackdropClick}
+ >
+ {children}
+
+ )
+ }
}
export default connect(mapStateToProps, mapDispatchToProps)(Modal)
-
-Modal.prototype.render = function () {
- const modal = MODALS[this.props.modalState.name || 'DEFAULT']
- const { contents: children, disableBackdropClick = false } = modal
- const modalStyle = modal[isMobileView() ? 'mobileModalStyle' : 'laptopModalStyle']
- const contentStyle = modal.contentStyle || {}
-
- return (
- {
- if (modal.onHide) {
- modal.onHide(this.props)
- }
- this.onHide(modal.customOnHideOpts)
- }}
- ref={(ref) => {
- this.modalRef = ref
- }}
- modalStyle={modalStyle}
- contentStyle={contentStyle}
- backdropStyle={BACKDROPSTYLE}
- closeOnClick={!disableBackdropClick}
- >
- {children}
-
- )
-}
-
-Modal.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
- if (nextProps.active) {
- this.show()
- } else if (this.props.active) {
- this.hide()
- }
-}
-
-Modal.prototype.onHide = function (customOnHideOpts) {
- if (this.props.onHideCallback) {
- this.props.onHideCallback()
- }
- this.props.hideModal(customOnHideOpts)
-}
-
-Modal.prototype.hide = function () {
- this.modalRef.hide()
-}
-
-Modal.prototype.show = function () {
- this.modalRef.show()
-}