summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer/components/MainView.tsx
blob: 3891a6e48bae5e921251a2b4d1fda64e7687f3d9 (plain)
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
import React, { useEffect, useState } from 'react';
import { useSelector } from 'react-redux';
import { hasExpired } from '../../shared/account-expiry';
import { IReduxState } from '../redux/store';
import ConnectPage from '../containers/ConnectPage';
import ExpiredAccountErrorViewContainer from '../containers/ExpiredAccountErrorViewContainer';
import { useHistory } from '../lib/history';

export default function MainView() {
  const history = useHistory();
  const accountExpiry = useSelector((state: IReduxState) => state.account.expiry);
  const accountHasExpired = accountExpiry && hasExpired(accountExpiry);
  const isNewAccount = useSelector(
    (state: IReduxState) =>
      state.account.status.type === 'ok' && state.account.status.method === 'new_account',
  );
  const [showAccountExpired, setShowAccountExpired] = useState(isNewAccount || accountHasExpired);

  useEffect(() => {
    if (accountHasExpired) {
      setShowAccountExpired(true);
    } else if (showAccountExpired && !accountHasExpired) {
      history.push('/main/time-added');
    }
  }, [showAccountExpired, accountHasExpired]);

  return showAccountExpired ? <ExpiredAccountErrorViewContainer /> : <ConnectPage />;
}