You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
939 B
34 lines
939 B
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 = props => {
|
|
const { isUnlocked, isInitialized } = props
|
|
|
|
switch (true) {
|
|
case isUnlocked && isInitialized:
|
|
return h(MetamaskRoute, { ...props })
|
|
case !isInitialized:
|
|
return h(Redirect, { to: { pathname: INITIALIZE_ROUTE } })
|
|
default:
|
|
return h(Redirect, { to: { pathname: UNLOCK_ROUTE } })
|
|
}
|
|
}
|
|
|
|
Authenticated.propTypes = {
|
|
isUnlocked: PropTypes.bool,
|
|
isInitialized: PropTypes.bool,
|
|
}
|
|
|
|
const mapStateToProps = state => {
|
|
const { metamask: { isUnlocked, isInitialized } } = state
|
|
return {
|
|
isUnlocked,
|
|
isInitialized,
|
|
}
|
|
}
|
|
|
|
module.exports = connect(mapStateToProps)(Authenticated)
|
|
|