diff --git a/resources/js/components/Home/HomePage.js b/resources/js/components/Home/HomePage.js index c6b2048f..782acf65 100644 --- a/resources/js/components/Home/HomePage.js +++ b/resources/js/components/Home/HomePage.js @@ -8,12 +8,14 @@ import TestsTable from '../Graphics/TestsTable'; import Settings from '../Settings/Settings'; import Login from '../Login'; import Authentication from '../Authentication/Authentication'; +import Navbar from '../Navbar'; export default class HomePage extends Component { render() { return (
+
{(window.config.auth == true && window.authenticated == false) && diff --git a/resources/js/components/Navbar.js b/resources/js/components/Navbar.js index f84535bf..929305cc 100644 --- a/resources/js/components/Navbar.js +++ b/resources/js/components/Navbar.js @@ -1,19 +1,65 @@ import React, { Component } from 'react'; +import {Nav, Navbar as BootstrapNavbar, NavLink as BootstrapNavLink} from 'react-bootstrap'; import ReactDOM from 'react-dom'; +import { Link, NavLink } from 'react-router-dom'; export default class Navbar extends Component { constructor(props) { super(props) this.state = { - + brand: { + name: "Speedtest Tracker", + url: window.config.base + }, + pages: [ + { + name: 'Home', + url: window.config.base, + authRequired: false + }, + { + name: 'Settings', + url: window.config.base + 'settings', + authRequired: true + } + ] } } + generateLinks = () => { + return this.state.pages.map(page => { + if( + page.authRequired === false || + ( + page.authRequired === true && + window.config.auth && + window.authenticated + ) || + ( + page.authRequired === true && + window.config.auth === false + ) + ) { + return {page.name}; + } + }); + } + render() { + var brand = this.state.brand; + var pages = this.generateLinks(); + return ( -
-
+ + {brand.name} + + + + + ); } } diff --git a/resources/js/components/Settings/SettingsIndex.js b/resources/js/components/Settings/SettingsIndex.js new file mode 100644 index 00000000..802e2bc7 --- /dev/null +++ b/resources/js/components/Settings/SettingsIndex.js @@ -0,0 +1,25 @@ +import React, { Component } from 'react'; +import ReactDOM from 'react-dom'; +import Navbar from '../Navbar'; + +export default class SettingsIndex extends Component { + constructor(props) { + super(props) + + this.state = { + + } + } + + render() { + return ( +
+ +
+ ); + } +} + +if (document.getElementById('settingsIndex')) { + ReactDOM.render(, document.getElementById('settingsIndex')); +} diff --git a/resources/js/index.js b/resources/js/index.js index 4f2ac9f6..31997fc2 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -8,6 +8,7 @@ import { ToastContainer } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; import HomePage from './components/Home/HomePage'; import Cookies from 'js-cookie'; +import SettingsIndex from './components/Settings/SettingsIndex'; export default class Index extends Component { constructor(props) { @@ -84,6 +85,12 @@ export default class Index extends Component {
)} /> + ( +
+ + +
+ )} /> ( )} /> ()} />