source: sources/client/src/App.js

Last change on this file was bc20307, checked in by Tasevski2 <39170279+Tasevski2@…>, 2 years ago

Push before video

  • Property mode set to 100644
File size: 2.3 KB
Line 
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';
10
11import useFindUser from './hooks/useFindUser';
12import Sidedrawer from './components/Sidedrawer';
13
14function App(props) {
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);
28
29 let displayScreen;
30 if (user && (user.role === roles.admin || user.role === roles.employee)) {
31 displayScreen = <AdminEmployeeHomeScreen />;
32 } else {
33 displayScreen = <UserAndNotAuthScreen />;
34 }
35
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 );
65}
66
67export default App;
Note: See TracBrowser for help on using the repository browser.