1 | import AdminEmployeeHomeScreen from './screens/AdminHomeScreen';
|
---|
2 | import UserAndNotAuthScreen from './screens/UserAndNotAuthScreen';
|
---|
3 | import Alert from './components/Alert';
|
---|
4 | import BackgropLoader from './components/Loaders/BackdropLoader';
|
---|
5 | import { roles } from './config/enums';
|
---|
6 | import { UserContext } from './context/UserContext';
|
---|
7 | import { AccessoriesContext } from './context/AccessoriesContext';
|
---|
8 | import useIsMobile from './hooks/useIsMobile';
|
---|
9 | import { useState } from 'react';
|
---|
10 |
|
---|
11 | import useFindUser from './hooks/useFindUser';
|
---|
12 | import Sidedrawer from './components/Sidedrawer';
|
---|
13 |
|
---|
14 | function 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 |
|
---|
67 | export default App;
|
---|