Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5761 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

/* eslint-disable react/prop-types */
import React, { useEffect, useState, lazy, Suspense } from 'react'
import { NavLink, Switch, Route, withRouter } from 'react-router-dom'
import { axios } from '../../../utils'

const Login = lazy(() => import('./login/Login'))
const Signup = lazy(() => import('./signup/Signup'))
const ForgotPassword = lazy(() => import('./forgot-password/ForgotPassword'))

const SigninSection = () => {
  const [authProps, setAuthProps] = useState(null)

  useEffect(() => {
    axios
      .get('/signin', {
        headers: {
          'Content-Type': 'application/json',
        },
      })
      .then(({ data: response }) => setAuthProps(response))
      .catch((err) => console.log(err))
  }, [])

  return (
    <>
      <ul className="sign-control">
        <li>
          <NavLink to="/signin" activeClassName="current">
            Entrar
          </NavLink>
        </li>
        <li>
          <NavLink to="/signup" activeClassName="current">
            Registrarse
          </NavLink>
        </li>
        <li>
          <NavLink to="/forgot-password" activeClassName="current">
            Olvide mi clave
          </NavLink>
        </li>
      </ul>

      <Suspense fallback={null}>
        {authProps && (
          <div className="sign_in_sec current">
            <Switch>
              <Route exact path="/signin">
                <Login {...authProps} />
              </Route>
              <Route exact path="/signup">
                <Signup captchaKey={authProps?.site_key} aes={authProps?.aes} />
              </Route>
              <Route exact path="/forgot-password">
                <ForgotPassword
                  captchaKey={authProps?.site_key}
                  aes={authProps?.aes}
                />
              </Route>
            </Switch>
          </div>
        )}
      </Suspense>
    </>
  )
}

export default withRouter(SigninSection)