Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3425 | Rev 3427 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3416 stevensc 1
import React, { useEffect } from "react";
2
import { useDispatch, useSelector } from "react-redux";
2611 stevensc 3
 
3416 stevensc 4
import { useApi } from "@hooks";
5
import { getCredentials, getLanguages } from "@services/auth";
6
import { labelsAdapter } from "./utils/labels";
7
import { setIntlLabels } from "./redux/intl/intl.action";
8
import { setCrendentials } from "./redux/auth/auth.actions";
2611 stevensc 9
 
3416 stevensc 10
import AppRoutes from "./routes/routes";
11
import ErrorPage from "./pages/error/error-page";
12
import Spinner from "./components/UI/Spinner";
2611 stevensc 13
 
3416 stevensc 14
import "./styles/globals.scss";
2611 stevensc 15
 
16
export default function App() {
3416 stevensc 17
  const {
18
    data: credentials,
19
    error: credentialsError,
20
    loading: loadingCredentials,
3426 stevensc 21
    execute: fetchCredentials,
22
  } = useApi(getCredentials);
23
  const {
24
    data: labels,
25
    error: labelsError,
26
    loading: loadingLanguages,
27
  } = useApi(getLanguages, { autoFetch: true });
2611 stevensc 28
 
3426 stevensc 29
  const { is_logged_in } = useSelector((state) => state.auth);
30
  const dispatch = useDispatch();
2611 stevensc 31
 
3426 stevensc 32
  const loading = loadingCredentials || loadingLanguages;
33
  const initialError = credentialsError || labelsError;
34
 
35
  useEffect(() => {
36
    dispatch(setIntlLabels(labelsAdapter(labels)));
37
  }, [labels, dispatch]);
38
 
39
  useEffect(() => {
40
    if (credentials) {
41
      window.localStorage.setItem("jwt", credentials.jwt);
42
      dispatch(setCrendentials(credentials));
43
    }
44
  }, [credentials, dispatch]);
45
 
46
  useEffect(() => {
47
    fetchCredentials();
48
  }, [is_logged_in, fetchCredentials]);
49
 
2611 stevensc 50
  if (loading) {
3416 stevensc 51
    return <Spinner />;
2611 stevensc 52
  }
53
 
3416 stevensc 54
  if (initialError) {
55
    return <ErrorPage />;
2611 stevensc 56
  }
57
 
3426 stevensc 58
  return <AppRoutes />;
2611 stevensc 59
}