Skip to content
Snippets Groups Projects
Commit 5014b1ea authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

Add login and navigation to Survey depending on user attributes

parent 8e1c5230
No related branches found
No related tags found
1 merge request!53Feature/comp 223 login flow
import React, { ReactElement } from "react"; import React, { ReactElement } from "react";
import { Container, Row } from "react-bootstrap"; import { Col, Container, Row } from "react-bootstrap";
import Login from "../../shared/Login";
import GeantLogo from "../../images/geant_logo_f2020_new.svg"; import GeantLogo from "../../images/geant_logo_f2020_new.svg";
/** /**
...@@ -14,26 +15,36 @@ function ExternalPageNavBar(): ReactElement { ...@@ -14,26 +15,36 @@ function ExternalPageNavBar(): ReactElement {
<Container> <Container>
<Row> <Row>
<nav> <Col xs={10}>
<a href="https://geant.org/"><img src={GeantLogo} /></a> <div className="nav-wrapper">
<nav className="header-nav">
<a href="https://geant.org/"><img src={GeantLogo} /></a>
<ul> <ul>
<li><a href="https://network.geant.org/">NETWORK</a></li> <li><a className="nav-link-entry" href="https://network.geant.org/">NETWORK</a></li>
<li><a href="https://geant.org/services/">SERVICES</a></li> <li><a className="nav-link-entry" href="https://geant.org/services/">SERVICES</a></li>
<li><a href="https://community.geant.org/">COMMUNITY</a></li> <li><a className="nav-link-entry" href="https://community.geant.org/">COMMUNITY</a></li>
<li><a href="https://tnc23.geant.org/">TNC</a></li> <li><a className="nav-link-entry" href="https://tnc23.geant.org/">TNC</a></li>
<li><a href="https://geant.org/projects/">PROJECTS</a></li> <li><a className="nav-link-entry" href="https://geant.org/projects/">PROJECTS</a></li>
<li><a href="https://connect.geant.org/">CONNECT</a></li> <li><a className="nav-link-entry" href="https://connect.geant.org/">CONNECT</a></li>
<li><a href="https://impact.geant.org/">IMPACT</a></li> <li><a className="nav-link-entry" href="https://impact.geant.org/">IMPACT</a></li>
<li><a href="https://careers.geant.org/">CAREERS</a></li> <li><a className="nav-link-entry" href="https://careers.geant.org/">CAREERS</a></li>
<li><a href="https://about.geant.org/">ABOUT</a></li> <li><a className="nav-link-entry" href="https://about.geant.org/">ABOUT</a></li>
<li><a href="https://connect.geant.org/community-news">NEWS</a></li> <li><a className="nav-link-entry" href="https://connect.geant.org/community-news">NEWS</a></li>
<li><a href="https://resources.geant.org/">RESOURCES</a></li> <li><a className="nav-link-entry" href="https://resources.geant.org/">RESOURCES</a></li>
</ul> </ul>
</nav>
</nav>
</div>
</Col>
<Col align="right">
<Login />
</Col>
</Row> </Row>
</Container> </Container>
</div> </div >
); );
} }
......
...@@ -2,13 +2,49 @@ ...@@ -2,13 +2,49 @@
@import 'scss/base/text'; @import 'scss/base/text';
@import 'scss/layout/components'; @import 'scss/layout/components';
.external-page-nav-bar { .nav-link-entry {
background-color: #003753; border-radius: 2px;
font-family: "Open Sans", sans-serif;
font-size: 0.9rem;
font-weight: 600;
text-decoration: none;
color: #b0cde1; color: #b0cde1;
padding: 10px;
}
.nav-link {
display: flex;
-webkit-box-align: center;
align-items: center;
height: 60px; height: 60px;
.nav-link-entry:hover {
color: #003753;
background-color: #b0cde1;
}
ul {
line-height: 1.3;
text-transform: uppercase;
list-style: none;
li {
float: left;
}
}
}
.nav-wrapper {
display: flex; display: flex;
-webkit-box-align: center; -webkit-box-align: center;
align-items: center; align-items: center;
height: 60px;
}
.header-nav {
width: 100%;
img { img {
float: left; float: left;
...@@ -42,8 +78,14 @@ ...@@ -42,8 +78,14 @@
} }
} }
.external-page-nav-bar {
background-color: #003753;
color: #b0cde1;
height: 60px;
}
.app { .app {
display: flex; // display: flex;
flex-direction: column; flex-direction: column;
min-height: 100vh; min-height: 100vh;
} }
\ No newline at end of file
.btn-login {
--bs-btn-color: #fff;
--bs-btn-border-color: #6c757d;
--bs-btn-border-radius: none;
// active
--bs-btn-active-color: #fff;
// see https://stackoverflow.com/a/76213205 for why this syntax is necessary
--bs-btn-active-bg: #{$yellow-orange};
--bs-btn-active-border-color: #{$yellow-orange};
// hover
--bs-btn-hover-color: rgb(0, 63, 95);
--bs-btn-hover-bg: #{$yellow-orange};
--bs-btn-hover-border-color: #{$yellow-orange};
// disabled
--bs-btn-disabled-color: #6c757d;
--bs-btn-disabled-bg: transparent;
// --bs-btn-disabled-border-color: #6c757d;
border: 2px solid $yellow-orange;
}
\ No newline at end of file
import React, { useContext, useEffect } from 'react';
import { Button } from 'react-bootstrap';
import { userContext } from './UserProvider';
const Login = () => {
const { user, logout } = useContext(userContext);
if (!user.name) {
return (
<a href='/login'><Button variant='login' active={false} style={{ maxWidth: '6rem' }}><span>Login</span></Button></a>
)
}
if (user.permissions.active) {
return <div className='nav-link' style={{ float: 'right' }}><a className='nav-link-entry' href="/survey">Go to Survey</a></div>
}
return <div className='nav-link' style={{ float: 'right' }}>
<span>{'<'}{user.name}{'>'}</span>
</div>
}
export default Login
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment