MCP ITSM Integration
by madosh
Verified
import React from 'react';
import { Navbar, Nav, Container, NavDropdown, Badge } from 'react-bootstrap';
import { Link, useNavigate } from 'react-router-dom';
import { authService } from '../services/api';
const Header = () => {
const navigate = useNavigate();
const currentUser = authService.getCurrentUser();
const isAuthenticated = authService.isAuthenticated();
const handleLogout = () => {
authService.logout();
navigate('/login');
};
return (
<Navbar bg="dark" variant="dark" expand="lg">
<Container>
<Navbar.Brand as={Link} to="/">ITSM Integration</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="me-auto">
{isAuthenticated && (
<>
<Nav.Link as={Link} to="/">Dashboard</Nav.Link>
<Nav.Link as={Link} to="/integrations">Integrations</Nav.Link>
{(currentUser?.role === 'admin' || currentUser?.role === 'integrator') && (
<Nav.Link as={Link} to="/integrations/create">Create Integration</Nav.Link>
)}
<NavDropdown title="Ticket Creation" id="ticket-creation-dropdown">
<NavDropdown.Item as={Link} to="/chat">
Standard Chat Client
</NavDropdown.Item>
<NavDropdown.Item as={Link} to="/ai-chat">
AI-Powered Chat <Badge bg="info" pill className="ms-1">New</Badge>
</NavDropdown.Item>
</NavDropdown>
{currentUser?.role === 'admin' && (
<Nav.Link as={Link} to="/users">Users</Nav.Link>
)}
</>
)}
</Nav>
<Nav>
{isAuthenticated ? (
<NavDropdown title={`${currentUser?.firstName || ''} ${currentUser?.lastName || ''}`} id="user-dropdown">
<NavDropdown.Item as={Link} to="/profile">Profile</NavDropdown.Item>
<NavDropdown.Divider />
<NavDropdown.Item onClick={handleLogout}>Logout</NavDropdown.Item>
</NavDropdown>
) : (
<Nav.Link as={Link} to="/login">Login</Nav.Link>
)}
</Nav>
</Navbar.Collapse>
</Container>
</Navbar>
);
};
export default Header;