Ignore:
Timestamp:
02/14/22 01:41:41 (2 years ago)
Author:
Tasevski2 <39170279+Tasevski2@…>
Branches:
master
Children:
747e0ab
Parents:
e8b1076
Message:

Push before video

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sources/client/src/App.js

    re8b1076 rbc20307  
    1 import './App.css';
    2 import { Route, Switch, Redirect } from 'react-router-dom';
     1import AdminEmployeeHomeScreen from './screens/AdminHomeScreen';
     2import UserAndNotAuthScreen from './screens/UserAndNotAuthScreen';
     3import Alert from './components/Alert';
     4import BackgropLoader from './components/Loaders/BackdropLoader';
     5import { roles } from './config/enums';
     6import { UserContext } from './context/UserContext';
     7import { AccessoriesContext } from './context/AccessoriesContext';
     8import useIsMobile from './hooks/useIsMobile';
     9import { useState } from 'react';
    310
    4 import DestinationComponent from './utils/DestinationComponent';
    5 
    6 import AdminHomeScreen from './screens/AdminHomeScreen';
    7 import LoginScreenImported from './screens/LoginScreen';
    8 
    9 import { roles } from './config/enums';
    10 
    11 const LoginScreen = new DestinationComponent('/', LoginScreenImported, true);
    12 const AdminEmployeeHomeScreen = new DestinationComponent('/', AdminHomeScreen);
    13 // const UserHomeScreen = new DestinationComponent('/', UserHomeScreen); TODO
    14 
    15 const publicRoutes = [LoginScreen];
    16 
    17 const userRoutes = [
    18   // UserHomeScreen
    19 ];
    20 
    21 const adminAndEmployeeRoutes = [AdminEmployeeHomeScreen];
     11import useFindUser from './hooks/useFindUser';
     12import Sidedrawer from './components/Sidedrawer';
    2213
    2314function App(props) {
    24   const user = {
    25     role: 'ROLE_ADMIN',
    26   };
     15    const [alertData, setAlertData] = useState({
     16        type: 'error',
     17        msg: 'Не Сте Логирани!',
     18    });
     19    const setAlert = ({ type, msg }) => {
     20        setAlertData({ type, msg });
     21        setIsAlertOpen(true);
     22    };
     23    const { user, setUser, isLoading: isLoadingUser } = useFindUser({ setAlert });
     24    const { isMobile } = useIsMobile();
     25    const [isAlertOpen, setIsAlertOpen] = useState(false);
     26    const [isBackdropLoaderOpen, setIsBackdropLoaderOpen] = useState(false);
     27    const [isOpenDrawer, setIsOpenDrawer] = useState(false);
    2728
    28   // const user = null;
     29    let displayScreen;
     30    if (user && (user.role === roles.admin || user.role === roles.employee)) {
     31        displayScreen = <AdminEmployeeHomeScreen />;
     32    } else {
     33        displayScreen = <UserAndNotAuthScreen />;
     34    }
    2935
    30   let routes = publicRoutes;
    31   if (user) {
    32     switch (user.role) {
    33       case roles.user:
    34         routes = userRoutes;
    35         break;
    36       case roles.admin:
    37       case roles.employee:
    38         routes = adminAndEmployeeRoutes;
    39         break;
    40       default:
    41         break;
    42     }
    43   }
    44   console.log(publicRoutes);
    45   return (
    46     <Switch>
    47       {routes?.map((route, index) => (
    48         <Route key={index} path={route.path} component={route.component} />
    49       ))}
    50       <Redirect to='/' />
    51     </Switch>
    52   );
     36    return (
     37        <UserContext.Provider value={{ user, setUser, isLoadingUser }}>
     38            <AccessoriesContext.Provider
     39                value={{
     40                    isMobile,
     41                    setAlert,
     42                    setIsBackdropLoaderOpen,
     43                    setIsOpenDrawer,
     44                }}
     45            >
     46                <Sidedrawer
     47                    isOpen={isOpenDrawer}
     48                    setIsOpen={setIsOpenDrawer}
     49                    isMobile={isMobile}
     50                />
     51                <BackgropLoader
     52                    isBackdropLoaderOpen={isBackdropLoaderOpen}
     53                    isMobile={isMobile}
     54                />
     55                <Alert
     56                    isOpen={isAlertOpen}
     57                    setIsOpen={setIsAlertOpen}
     58                    type={alertData.type}
     59                    msg={alertData.msg}
     60                />
     61                {displayScreen}
     62            </AccessoriesContext.Provider>
     63        </UserContext.Provider>
     64    );
    5365}
    5466
Note: See TracChangeset for help on using the changeset viewer.