11import { useEffect } from 'react'
22import jwt_decode from 'jwt-decode'
3- import { BrowserRouter as Router , Route } from 'react-router-dom'
3+ import { BrowserRouter as Router , Route , Link } from 'react-router-dom'
44import Footer from './components/Footer'
55import Routes from './components/routes/Routes'
66import { useDispatch , useSelector } from 'react-redux'
77import 'animate.css'
8+ import { FaPowerOff , FaSlidersH } from 'react-icons/fa'
9+ import { resetUpdateUser , logout } from './redux/users/usersSlice'
810
9- import { logout } from './redux/users/usersSlice'
1011import HeaderGuest from './components/HeaderGuest'
1112import HeaderAuthorized from './components/HeaderAuthorized'
1213
@@ -29,15 +30,55 @@ const App = () => {
2930 } )
3031 } , [ dispatch ] )
3132
33+ const style = {
34+ display : 'flex' ,
35+ }
36+
37+ const logoutHandler = ( ) => {
38+ dispatch ( logout ( ) )
39+ dispatch ( resetUpdateUser ( ) )
40+ }
41+
42+ const toggler = ( ) => {
43+ const sidebar = document . querySelector ( '#sidebar' )
44+ sidebar . classList . toggle ( 'active' )
45+ }
46+
3247 return (
3348 < Router >
34- { userInfo ? < HeaderAuthorized /> : < HeaderGuest /> }
35- < main >
36- < div className = 'container' >
37- < Route component = { Routes } />
38- </ div >
39- </ main >
40- < Footer />
49+ < div className = 'wrapper' style = { userInfo && style } >
50+ { userInfo ? < HeaderAuthorized toggler = { toggler } /> : < HeaderGuest /> }
51+ < main >
52+ { userInfo && (
53+ < nav className = 'navbar navbar-expand-sm navbar-dark sticky-top' >
54+ < div className = 'container-fluid' >
55+ < button
56+ onClick = { toggler }
57+ className = 'navbar-brand btn btn-transparent shadow-none border-0'
58+ >
59+ < FaSlidersH />
60+ </ button >
61+
62+ < ul className = 'navbar-nav d-flex flex-row' >
63+ < li className = 'nav-item' >
64+ < Link to = '/' onClick = { logoutHandler } className = 'nav-link' >
65+ < FaPowerOff className = 'mb-1' /> Logout
66+ </ Link >
67+ </ li >
68+ </ ul >
69+ </ div >
70+ </ nav >
71+ ) }
72+
73+ < div
74+ className = { `${ ! userInfo ? 'container' : 'container-fluid' } ` }
75+ id = 'mainContainer'
76+ >
77+ < Route component = { Routes } />
78+ </ div >
79+ < Footer />
80+ </ main >
81+ </ div >
4182 </ Router >
4283 )
4384}
0 commit comments