diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/Header.js | 15 | ||||
-rw-r--r-- | src/components/Header/Header.js | 42 | ||||
-rw-r--r-- | src/index.js | 30 | ||||
-rw-r--r-- | src/requests.js | 17 |
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 + ); +}; |