From 90fae26aa4bd0e0eb3272ff6e6524060e9004fbb Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Mon, 29 Jun 2020 15:47:09 +0200 Subject: Prepare frontend repository for monorepo This change prepares the frontend Git repository for the monorepo residing at https://github.com/atlarge-research.com/opendc. To accomodate for this, we move all files into a frontend subdirectory. --- frontend/src/components/navigation/AppNavbar.js | 56 +++++++++++ frontend/src/components/navigation/HomeNavbar.js | 24 +++++ frontend/src/components/navigation/LogoutButton.js | 16 ++++ frontend/src/components/navigation/Navbar.js | 102 +++++++++++++++++++++ frontend/src/components/navigation/Navbar.sass | 29 ++++++ 5 files changed, 227 insertions(+) create mode 100644 frontend/src/components/navigation/AppNavbar.js create mode 100644 frontend/src/components/navigation/HomeNavbar.js create mode 100644 frontend/src/components/navigation/LogoutButton.js create mode 100644 frontend/src/components/navigation/Navbar.js create mode 100644 frontend/src/components/navigation/Navbar.sass (limited to 'frontend/src/components/navigation') diff --git a/frontend/src/components/navigation/AppNavbar.js b/frontend/src/components/navigation/AppNavbar.js new file mode 100644 index 00000000..1a35f85d --- /dev/null +++ b/frontend/src/components/navigation/AppNavbar.js @@ -0,0 +1,56 @@ +import React from "react"; +import FontAwesome from "react-fontawesome"; +import { Link } from "react-router-dom"; +import Navbar, { NavItem } from "./Navbar"; +import "./Navbar.css"; + +const AppNavbar = ({ simulationId, inSimulation, fullWidth }) => ( + + {inSimulation ? ( + + + + Construction + + + ) : ( + undefined + )} + {inSimulation ? ( + + + + Experiments + + + ) : ( + undefined + )} + + + + My Simulations + + + + + + Support + + + +); + +export default AppNavbar; diff --git a/frontend/src/components/navigation/HomeNavbar.js b/frontend/src/components/navigation/HomeNavbar.js new file mode 100644 index 00000000..5d08bf3c --- /dev/null +++ b/frontend/src/components/navigation/HomeNavbar.js @@ -0,0 +1,24 @@ +import React from "react"; +import Navbar from "./Navbar"; +import "./Navbar.css"; + +const ScrollNavItem = ({ id, name }) => ( +
  • + + {name} + +
  • +); + +const HomeNavbar = () => ( + + + + + + + + +); + +export default HomeNavbar; diff --git a/frontend/src/components/navigation/LogoutButton.js b/frontend/src/components/navigation/LogoutButton.js new file mode 100644 index 00000000..800a3da8 --- /dev/null +++ b/frontend/src/components/navigation/LogoutButton.js @@ -0,0 +1,16 @@ +import PropTypes from "prop-types"; +import React from "react"; +import FontAwesome from "react-fontawesome"; +import { Link } from "react-router-dom"; + +const LogoutButton = ({ onLogout }) => ( + + + +); + +LogoutButton.propTypes = { + onLogout: PropTypes.func.isRequired +}; + +export default LogoutButton; diff --git a/frontend/src/components/navigation/Navbar.js b/frontend/src/components/navigation/Navbar.js new file mode 100644 index 00000000..44458949 --- /dev/null +++ b/frontend/src/components/navigation/Navbar.js @@ -0,0 +1,102 @@ +import classNames from "classnames"; +import React from "react"; +import { Link, withRouter } from "react-router-dom"; +import { userIsLoggedIn } from "../../auth/index"; +import Login from "../../containers/auth/Login"; +import Logout from "../../containers/auth/Logout"; +import ProfileName from "../../containers/auth/ProfileName"; +import "./Navbar.css"; + +export const NAVBAR_HEIGHT = 60; + +export const NavItem = withRouter(props => ); +export const LoggedInSection = withRouter(props => ( + +)); + +const GitHubLink = () => ( + + + +); + +const NavItemWithoutRoute = ({ route, location, children }) => ( +
  • + {children} +
  • +); + +const LoggedInSectionWithoutRoute = ({ location }) => ( +
      + {userIsLoggedIn() ? ( + [ + location.pathname === "/" ? ( + + + My Simulations + + + ) : ( + + + + + + ), + + + + ] + ) : ( + + + + + )} +
    +); + +const Navbar = ({ fullWidth, children }) => ( + +); + +export default Navbar; diff --git a/frontend/src/components/navigation/Navbar.sass b/frontend/src/components/navigation/Navbar.sass new file mode 100644 index 00000000..94c52936 --- /dev/null +++ b/frontend/src/components/navigation/Navbar.sass @@ -0,0 +1,29 @@ +@import ../../style-globals/_mixins.sass +@import ../../style-globals/_variables.sass + +.navbar + border-top: $blue 3px solid + border-bottom: $gray-semi-dark 1px solid + color: $gray-very-dark + background: #fafafb + +.opendc-brand + display: inline-block + color: $gray-very-dark + + +transition(background, $transition-length) + + img + position: relative + bottom: 3px + display: inline-block + width: 30px + +.login + height: 40px + background: $blue + border: none + +clickable + + &:hover + background: $blue-dark -- cgit v1.2.3