1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Convert Modal component to ES6 class (#7783)

This commit is contained in:
Whymarrh Whitby 2020-01-10 15:35:46 -03:30 committed by GitHub
parent 52a38de567
commit 89e7dc2312
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,6 @@
import PropTypes from 'prop-types'
import React, { Component } from 'react' import React, { Component } from 'react'
import { inherits } from 'util'
import { connect } from 'react-redux' import { connect } from 'react-redux'
import * as actions from '../../../store/actions' import * as actions from '../../../store/actions'
import { resetCustomData as resetCustomGasData } from '../../../ducks/gas/gas.duck' import { resetCustomData as resetCustomGasData } from '../../../ducks/gas/gas.duck'
@ -464,15 +464,31 @@ function mapDispatchToProps (dispatch) {
} }
} }
// Global Modal Component class Modal extends Component {
inherits(Modal, Component) static propTypes = {
function Modal () { active: PropTypes.bool.isRequired,
Component.call(this) hideModal: PropTypes.func.isRequired,
} hideWarning: PropTypes.func.isRequired,
modalState: PropTypes.object.isRequired,
}
export default connect(mapStateToProps, mapDispatchToProps)(Modal) hide () {
this.modalRef.hide()
}
Modal.prototype.render = function () { 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 modal = MODALS[this.props.modalState.name || 'DEFAULT']
const { contents: children, disableBackdropClick = false } = modal const { contents: children, disableBackdropClick = false } = modal
const modalStyle = modal[isMobileView() ? 'mobileModalStyle' : 'laptopModalStyle'] const modalStyle = modal[isMobileView() ? 'mobileModalStyle' : 'laptopModalStyle']
@ -483,9 +499,11 @@ Modal.prototype.render = function () {
keyboard={false} keyboard={false}
onHide={() => { onHide={() => {
if (modal.onHide) { if (modal.onHide) {
modal.onHide(this.props) modal.onHide({
hideWarning: this.props.hideWarning,
})
} }
this.onHide(modal.customOnHideOpts) this.props.hideModal(modal.customOnHideOpts)
}} }}
ref={(ref) => { ref={(ref) => {
this.modalRef = ref this.modalRef = ref
@ -498,27 +516,7 @@ Modal.prototype.render = function () {
{children} {children}
</FadeModal> </FadeModal>
) )
}
Modal.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
if (nextProps.active) {
this.show()
} else if (this.props.active) {
this.hide()
} }
} }
Modal.prototype.onHide = function (customOnHideOpts) { export default connect(mapStateToProps, mapDispatchToProps)(Modal)
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()
}