import React from 'react'; import withPageTitle from 'HOCs/withPageTitle'; import { Icon } from 'UI'; import { connect } from 'react-redux'; import cn from 'classnames'; import SignupForm from './SignupForm'; import RegisterBg from '../../svg/register.svg'; import HealthModal from 'Components/Header/HealthStatus/HealthModal/HealthModal'; import { getHealthRequest } from 'Components/Header/HealthStatus/getHealth'; import { login } from 'App/routes'; import { withRouter } from 'react-router-dom'; import { fetchTenants } from 'Duck/user'; import Copyright from 'Shared/Copyright'; const LOGIN_ROUTE = login(); const BulletItem = ({ text }) => (
{text}
); const healthStatusCheck_key = '__or__healthStatusCheck_key' @connect( (state, props) => ({ loading: state.getIn(['user', 'loginRequest', 'loading']), authDetails: state.getIn(['user', 'authDetails']), }), { fetchTenants } ) @withPageTitle('Signup - OpenReplay') @withRouter export default class Signup extends React.Component { state = { healthModalPassed: localStorage.getItem(healthStatusCheck_key === 'true'), healthStatusLoading: true, healthStatus: null, } static getDerivedStateFromProps(nextProps, prevState) { const { authDetails } = nextProps; if (Object.keys(authDetails).length === 0) { return null; } if (authDetails.tenants) { nextProps.history.push(LOGIN_ROUTE); } return null; } getHealth = async () => { this.setState({ healthStatusLoading: true }); const { healthMap } = await getHealthRequest(true); this.setState({ healthStatus: healthMap, healthStatusLoading: false }); } componentDidMount() { if (!this.state.healthModalPassed) void this.getHealth(); const { authDetails } = this.props; if (Object.keys(authDetails).length === 0) { this.props.fetchTenants(); } } setHealthModalPassed = () => { localStorage.setItem(healthStatusCheck_key, 'true'); this.setState({ healthModalPassed: true }); } render() { if (!this.state.healthModalPassed) { return ( null} healthResponse={this.state.healthStatus} getHealth={this.getHealth} isLoading={this.state.healthStatusLoading} setPassed={this.setHealthModalPassed} /> ) } return (
); } }