-
Notifications
You must be signed in to change notification settings - Fork 291
Expand file tree
/
Copy pathHeader.js
More file actions
77 lines (73 loc) · 2.74 KB
/
Header.js
File metadata and controls
77 lines (73 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import React from 'react';
import { Container, Nav, Navbar, NavDropdown } from 'react-bootstrap';
import { LinkContainer } from 'react-router-bootstrap';
import { useDispatch, useSelector } from 'react-redux';
import { isAdmin } from '../service/CommonUtils';
import { logout } from '../actions/userActions';
import DarkModeToggle from './DarkModeToggle';
const Header = (props) => {
const userLogin = useSelector((state) => state.userLogin);
const { userInfo } = userLogin;
const dispatch = useDispatch();
const logoutHandler = () => {
dispatch(logout());
};
return (
<header>
<Navbar
style={{
background: 'linear-gradient(142deg, rgba(131,58,180,1) 0%, rgba(253,29,29,1) 68%, rgba(252,176,69,1) 100%)',
border: '0',
color: '#00000'
}}
className='navbar navbar-expand-lg navbar-dark'
collapseOnSelect
>
<Container>
<LinkContainer to='/'>
<Navbar.Brand className='bookstore-brand'>BookStore</Navbar.Brand>
</LinkContainer>
<Navbar.Toggle aria-controls='basic-navbar-nav' />
<Navbar.Collapse id='basic-navbar-nav'>
<Nav className='navbar-nav ml-auto'>
<LinkContainer to='/cart'>
<Nav.Link>
<i className='p-1 fas fa-shopping-cart'></i>Cart
</Nav.Link>
</LinkContainer>
{userInfo ? (
<NavDropdown title={userInfo.userName} id='username'>
<LinkContainer to='/userProfile'>
<NavDropdown.Item>Profile</NavDropdown.Item>
</LinkContainer>
<NavDropdown.Item onClick={logoutHandler}>Logout</NavDropdown.Item>
</NavDropdown>
) : (
<LinkContainer to='/login'>
<Nav.Link href='/login'>
<i className='p-1 fas fa-user'></i>Sign In
</Nav.Link>
</LinkContainer>
)}
{userInfo && isAdmin() && (
<NavDropdown title='Admin' id='adminmenu'>
<LinkContainer to='/admin/userlist'>
<NavDropdown.Item>Users</NavDropdown.Item>
</LinkContainer>
<LinkContainer to='/admin/productlist'>
<NavDropdown.Item>Products</NavDropdown.Item>
</LinkContainer>
<LinkContainer to='/admin/orderlist'>
<NavDropdown.Item>Orders</NavDropdown.Item>
</LinkContainer>
</NavDropdown>
)}
<DarkModeToggle/>
</Nav>
</Navbar.Collapse>
</Container>
</Navbar>
</header>
);
};
export default Header;