import React, { useEffect, useState } from 'react'; import { withRouter, RouteComponentProps } from 'react-router-dom'; import { observer } from 'mobx-react-lite'; import { useStore } from 'App/mstore'; import { Icon } from 'UI'; import SignupForm from './SignupForm'; import HealthModal from 'Components/Header/HealthStatus/HealthModal/HealthModal'; import { getHealthRequest } from 'Components/Header/HealthStatus/getHealth'; import withPageTitle from 'HOCs/withPageTitle'; import { login } from 'App/routes'; import Copyright from 'Shared/Copyright'; const LOGIN_ROUTE = login(); const BulletItem: React.FC<{ text: string }> = ({ text }) => (
{text}
); const healthStatusCheck_key = '__or__healthStatusCheck_key'; type SignupProps = RouteComponentProps; const Signup: React.FC = ({ history }) => { const { userStore } = useStore(); const authDetails = userStore.authStore.authDetails; const [healthModalPassed, setHealthModalPassed] = useState(localStorage.getItem(healthStatusCheck_key) === 'true'); const [healthStatusLoading, setHealthStatusLoading] = useState(true); const [healthStatus, setHealthStatus] = useState(null); const getHealth = async () => { setHealthStatusLoading(true); try { const { healthMap } = await getHealthRequest(true); setHealthStatus(healthMap); } catch (e) { console.error(e); } finally { setHealthStatusLoading(false); } }; useEffect(() => { if (!authDetails) return if (authDetails) { if (authDetails.tenants) { history.push(LOGIN_ROUTE); } else { void getHealth(); } } }, [authDetails]); if (authDetails && !healthModalPassed && !authDetails.tenants) { return ( null} healthResponse={healthStatus} getHealth={getHealth} isLoading={healthStatusLoading} setPassed={() => setHealthModalPassed(true)} /> ); } return (
); }; export default withRouter(withPageTitle('Signup - OpenReplay')(observer(Signup)));