/
restrictBeta.js
33 lines (27 loc) 路 947 Bytes
/
restrictBeta.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* eslint-disable react/jsx-filename-extension */
import React, { useEffect } from 'react'
import PropTypes from 'prop-types'
import { inject } from '@k-ramel/react'
import { useAuth } from 'features/auth'
const SKIP_BETA_ACCESS = process.env.NODE_ENV === 'development'
export default (Component) => {
const BetaRestricted = ({ redirectBetaAccess, ...rest }) => {
const { user } = useAuth()
const { betaAccess } = user
useEffect(() => {
if (SKIP_BETA_ACCESS) return
if (!betaAccess) redirectBetaAccess()
}, [betaAccess, redirectBetaAccess])
return SKIP_BETA_ACCESS || betaAccess ? <Component {...rest} /> : null
}
BetaRestricted.propTypes = {
redirectBetaAccess: PropTypes.func.isRequired,
}
return inject((store) => {
return {
redirectBetaAccess: () => {
store.dispatch({ type: '@@router/REPLACE_WITH_NEXT_URL', payload: 'beta-access' })
},
}
})(BetaRestricted)
}