Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | 1x 1x 1x 1x 1x 1x 1x 146x 146x 146x 146x 146x 146x 146x 146x 1x 1x 1x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x 146x | import { Container, Nav, Navbar, NavDropdown } from "react-bootstrap";
import { Link, useLocation, useNavigate } from "react-router";
import { hasRole } from "main/utils/currentUser";
import AppNavbarLocalhost from "main/components/Nav/AppNavbarLocalhost";
import GoogleLogin from "main/components/Nav/GoogleLogin";
import GithubLogin from "main/components/Nav/GithubLogin";
export default function AppNavbar({
currentUser,
systemInfo,
doLogout,
currentUrl = window.location.href,
}) {
const navigation = useNavigate();
const location = useLocation();
const handleSignIn = () => {
sessionStorage.setItem("redirect", location.pathname);
navigation("/login");
};
return (
<>
{(currentUrl.startsWith("http://localhost:3000") ||
currentUrl.startsWith("http://127.0.0.1:3000")) && (
<AppNavbarLocalhost url={currentUrl} />
)}
<Navbar
expand="md"
variant="dark"
bg="dark"
sticky="top"
data-testid="AppNavbar"
>
<Container>
<Navbar.Brand as={Link} to="/">
Frontiers
</Navbar.Brand>
<Navbar.Toggle />
<>
{/* be sure that each NavDropdown has a unique id and data-testid */}
</>
<Navbar.Collapse className="justify-content-between">
<Nav className="mr-auto">
{systemInfo?.showSwaggerUILink && (
<>
<Nav.Link href="/swagger-ui/index.html">Swagger</Nav.Link>
</>
)}
{systemInfo?.springH2ConsoleEnabled && (
<>
<Nav.Link href="/h2-console">H2Console</Nav.Link>
</>
)}
{hasRole(currentUser, "ROLE_ADMIN") && (
<NavDropdown
title="Admin"
id="appnavbar-admin-dropdown"
data-testid="appnavbar-admin-dropdown"
>
<NavDropdown.Item as={Link} to="/admin/users">
Users
</NavDropdown.Item>
<NavDropdown.Item as={Link} to="/admin/admins">
Admins
</NavDropdown.Item>
<NavDropdown.Item as={Link} to="/admin/instructors">
Instructors
</NavDropdown.Item>
<NavDropdown.Item as={Link} to="/admin/courses">
Courses
</NavDropdown.Item>
<NavDropdown.Item as={Link} to="/admin/jobs">
Jobs
</NavDropdown.Item>
</NavDropdown>
)}
</Nav>
{hasRole(currentUser, "ROLE_GITHUB") && (
<Nav className="ml-auto">
<GithubLogin
currentUser={currentUser}
systemInfo={systemInfo}
/>
</Nav>
)}
<Nav className="ml-auto">
<GoogleLogin
currentUser={currentUser}
handleLogin={handleSignIn}
doLogout={doLogout}
/>
</Nav>
</Navbar.Collapse>
</Container>
</Navbar>
</>
);
}
|