mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-10-23 11:46:13 +02:00
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
const { connect } = require('react-redux')
|
|
const PropTypes = require('prop-types')
|
|
const { Redirect } = require('react-router-dom')
|
|
const h = require('react-hyperscript')
|
|
const MetamaskRoute = require('./metamask-route')
|
|
const { UNLOCK_ROUTE, INITIALIZE_ROUTE } = require('../../routes')
|
|
|
|
const Authenticated = ({ component: Component, isUnlocked, isInitialized, ...props }) => {
|
|
const component = renderProps => {
|
|
switch (true) {
|
|
case isUnlocked:
|
|
return h(Component, { ...renderProps })
|
|
case !isInitialized:
|
|
return h(Redirect, { to: { pathname: INITIALIZE_ROUTE } })
|
|
default:
|
|
return h(Redirect, { to: { pathname: UNLOCK_ROUTE } })
|
|
}
|
|
}
|
|
|
|
return (
|
|
h(MetamaskRoute, {
|
|
...props,
|
|
component,
|
|
})
|
|
)
|
|
}
|
|
|
|
Authenticated.propTypes = {
|
|
component: PropTypes.func,
|
|
isUnlocked: PropTypes.bool,
|
|
isInitialized: PropTypes.bool,
|
|
}
|
|
|
|
const mapStateToProps = state => {
|
|
const { metamask: { isUnlocked, isInitialized } } = state
|
|
return {
|
|
isUnlocked,
|
|
isInitialized,
|
|
}
|
|
}
|
|
|
|
module.exports = connect(mapStateToProps)(Authenticated)
|