Untitled

 avatar
unknown
jsx
2 years ago
1.1 kB
5
Indexable
import React, { useEffect, useState } from "react";

import { PageLoader } from "neetoui";
import { Route, Switch, BrowserRouter } from "react-router-dom";
import { ToastContainer } from "react-toastify";

import { setAuthHeaders, registerIntercepts } from "apis/axios";
import { initializeLogger } from "common/logger";
import { DASHBOARD_ROUTE, PUBLIC_ROUTE } from "components/routeConstants";
import { useAuthDispatch } from "contexts/auth";

const Main = () => {
  const [loading, setLoading] = useState(true);

  const authDispatch = useAuthDispatch();

  useEffect(() => {
    initializeLogger();
    registerIntercepts(authDispatch);
    setAuthHeaders(setLoading);
  }, [authDispatch]);

  if (loading) {
    return (
      <div className="h-screen">
        <PageLoader />
      </div>
    );
  }

  return (
    <BrowserRouter>
      <ToastContainer />
      <Switch>
        <Route component={PUBLIC_ROUTE.component} path={PUBLIC_ROUTE.path} />
        <Route
          component={DASHBOARD_ROUTE.component}
          path={DASHBOARD_ROUTE.path}
        />
      </Switch>
    </BrowserRouter>
  );
};

export default Main;
Editor is loading...