aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/Header.js15
-rw-r--r--src/components/Header/Header.js42
-rw-r--r--src/index.js30
-rw-r--r--src/requests.js17
4 files changed, 79 insertions, 25 deletions
diff --git a/src/components/Header.js b/src/components/Header.js
deleted file mode 100644
index 47da527..0000000
--- a/src/components/Header.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from "react";
-
-const Header = () => (
- <div>
- <span> ChronoCube </span>
- <ul>
- <li> Home </li>
- <li> App </li>
- <li> Scoreboard </li>
- <li> News </li>
- </ul>
- </div>
-);
-
-export default Header;
diff --git a/src/components/Header/Header.js b/src/components/Header/Header.js
new file mode 100644
index 0000000..9bfe5c4
--- /dev/null
+++ b/src/components/Header/Header.js
@@ -0,0 +1,42 @@
+import React from "react";
+import {
+ AppBar,
+ Tabs,
+ Tab,
+ Typography
+} from "@material-ui/core";
+import styled from 'styled-components';
+
+const Header = ({ setPage }) => {
+
+ const handleChange = (event, newPage) => {
+ setPage(newPage);
+ };
+
+ return (
+ <AppBar position="static">
+ <TabsWrapper onChange={handleChange}>
+ <Typography variant="h4" id="logo"> ChronoCube </Typography>
+ <Tab label="App" value="app"/>
+ <Tab label="Profile" value="profile"/>
+ <Tab label="Scoreboard" value="scoreboard"/>
+ <Tab label="News" value="news"/>
+ </TabsWrapper>
+ </AppBar>
+ );
+};
+
+const TabsWrapper = styled(Tabs)`
+ border-bottom: 1px solid black;
+ & .MuiTab-wrapper {
+ padding: 10px;
+ }
+ & .MuiTypography-root {
+ font-weight: bold;
+ padding: 10px;
+ margin-right: 50px;
+ margin-left: 30px;
+ }
+`;
+
+export default Header;
diff --git a/src/index.js b/src/index.js
index 512d416..5c657f9 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,22 +1,32 @@
-import React from 'react';
+import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import styled from 'styled-components';
import CssBaseline from '@material-ui/core/CssBaseline'
-import Header from "./components/Header";
+import Header from './components/Header/Header';
-const App = () => (
- <Root>
- <CssBaseline/>
- <Header/>
- <p> Page content here </p>
- </Root>
-);
+const App = () => {
+
+ const [page, setPage] = useState('app');
+
+ return (
+ <Root>
+ <CssBaseline/>
+ <Header setPage={setPage} />
+ <h1> This is the {page} page! </h1>
+ <p>
+ This text is rendered outside of <code>Header</code> component, but
+ interacting with <code>Header</code> can influence content of this page!
+ </p>
+ </Root>
+ );
+};
const Root = styled.div`
- background: lightgrey;
+ background: cornsilk;
+ padding-bottom: 25px;
`;
diff --git a/src/requests.js b/src/requests.js
new file mode 100644
index 0000000..91eaf65
--- /dev/null
+++ b/src/requests.js
@@ -0,0 +1,17 @@
+import axios from 'axios'
+
+const baseUrl = 'http://localhost:8000/';
+const baseApiUrl = baseUrl + 'api/';
+
+export const get = (url) => {
+ return axios.get(
+ baseApiUrl + url,
+ );
+};
+
+export const post = (url, data) => {
+ return axios.post(
+ baseApiUrl + url,
+ data
+ );
+};