From 550f00b93c03a9ad98ef9bb1197c0fbfd5b1e572 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 21 Mar 2020 14:17:58 +0300 Subject: chore!: migrate index.js -> index.tsx --- src/index.tsx | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/index.tsx (limited to 'src/index.tsx') diff --git a/src/index.tsx b/src/index.tsx new file mode 100644 index 0000000..eb43b7e --- /dev/null +++ b/src/index.tsx @@ -0,0 +1,91 @@ +import React, { useState, useEffect } from 'react'; +import ReactDOM from 'react-dom'; + +import { + BenzinThemeProvider, + Header, +} from 'react-benzin'; + +import 'typeface-roboto'; + +import Timer from './pages/Timer/Timer'; +import Scoreboard from './pages/Scoreboard/Scoreboard'; +import Contribute from './pages/Contribute/Contribute'; +import Profile from './pages/Profile/Profile'; + +import TimerIcon from '@material-ui/icons/Timer'; +import AccountCircleIcon from '@material-ui/icons/AccountCircle'; +import AssignmentIcon from '@material-ui/icons/Assignment'; +import GitHubIcon from '@material-ui/icons/GitHub'; + +import { get } from './requests'; + +interface User { + username: string; + id: number | null; +} + +const App: React.FC = () => { + const [page, setPage] = useState('app'); + const [user, setUser] = useState({ username: 'anonymous', id: null }); + const [recentSolutions, setRecentSolutions] = useState([]); + + const headerContents = { + app: (), + profile: (), + scoreboard: (), + contribute: (), + }; + + useEffect(() => { + const userId = localStorage.getItem('userId'); + if (userId) { + get('users/').then(response => { + setUser(response.data.filter((user: User) => user.id === +userId)[0]); + }); + } + }, []); + + const Page: React.FC<{ page: string }> = ({ page }) => { + switch (page) { + case 'app': + return ( + + ); + + case 'profile': + return ; + + case 'scoreboard': + return ; + + case 'contribute': + return ; + + default: + return ; + } + }; + + return ( + +
+ + + ); +}; + +document.body.style.overflow = 'hidden'; +ReactDOM.render(, document.getElementById('root')); -- cgit v1.2.3 From f4d8ee37400f25d4fec3638b1ba73e8661c30959 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 21 Mar 2020 14:29:05 +0300 Subject: feat: add types.d.ts, migrate Scoreboard --- src/index.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/index.tsx') diff --git a/src/index.tsx b/src/index.tsx index eb43b7e..360ca89 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -5,6 +5,7 @@ import { BenzinThemeProvider, Header, } from 'react-benzin'; +import { User, Solution } from './types'; import 'typeface-roboto'; @@ -20,15 +21,11 @@ import GitHubIcon from '@material-ui/icons/GitHub'; import { get } from './requests'; -interface User { - username: string; - id: number | null; -} const App: React.FC = () => { const [page, setPage] = useState('app'); const [user, setUser] = useState({ username: 'anonymous', id: null }); - const [recentSolutions, setRecentSolutions] = useState([]); + const [recentSolutions, setRecentSolutions] = useState([]); const headerContents = { app: (), -- cgit v1.2.3