Changeset bc20307 for sources/client/src/App.js
- Timestamp:
- 02/14/22 01:41:41 (2 years ago)
- Branches:
- master
- Children:
- 747e0ab
- Parents:
- e8b1076
- 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'; 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'; 3 10 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]; 11 import useFindUser from './hooks/useFindUser'; 12 import Sidedrawer from './components/Sidedrawer'; 22 13 23 14 function 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); 27 28 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 } 29 35 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 ); 53 65 } 54 66
Note:
See TracChangeset
for help on using the changeset viewer.