From c8a4523ea2f0a9d40a9fb2fb1dca01065c2e6ca1 Mon Sep 17 00:00:00 2001 From: lonkaars Date: Fri, 15 Jan 2021 16:20:49 +0100 Subject: login / button changes / account homepage --- src/api.ts | 9 +++++++ src/components/ui.tsx | 6 +++-- src/pages/home.tsx | 70 ++++++++++++++++++++++++++++++++++++++++++++------- src/pages/login.tsx | 2 +- 4 files changed, 75 insertions(+), 12 deletions(-) create mode 100644 src/api.ts (limited to 'src') diff --git a/src/api.ts b/src/api.ts new file mode 100644 index 0000000..e2e3d93 --- /dev/null +++ b/src/api.ts @@ -0,0 +1,9 @@ +export interface userInfo { + avatar?: string|null, + coutry?: string|null, + id?: string, + registered?: number, + type?: string, + username?: string, +}; + diff --git a/src/components/ui.tsx b/src/components/ui.tsx index c2ce35e..37c24b3 100644 --- a/src/components/ui.tsx +++ b/src/components/ui.tsx @@ -31,15 +31,17 @@ export function Button(props: { text?: string; children?: ReactNode; style?: CSSProperties; + href?: string; onclick?: (() => void); }) { - return
{ @@ -51,7 +53,7 @@ export function Button(props: { : undefined } { props.children } -
; + ; } export function Input(props: { diff --git a/src/pages/home.tsx b/src/pages/home.tsx index 3b279e8..27a7271 100644 --- a/src/pages/home.tsx +++ b/src/pages/home.tsx @@ -1,8 +1,10 @@ -import { CSSProperties } from 'react'; +import { CSSProperties, Component } from 'react'; +import axios from 'axios'; +import { userInfo } from '../api'; import { NavBar } from '../components/navbar'; import { CenteredPage, PageTitle } from '../components/page'; -import { Vierkant } from '../components/ui'; +import { Vierkant, Button } from '../components/ui'; import { AccountAvatar } from '../components/account'; import VideogameAssetIcon from '@material-ui/icons/VideogameAsset'; @@ -48,9 +50,33 @@ var RightAlignedTableColumn: CSSProperties = { paddingRight: 16 } -export default function HomePage() { - return ( -
+export default class HomePage extends Component { + state: { + info: userInfo, + loggedIn: boolean + } = { + info: {}, + loggedIn: document.cookie.includes("token") + } + + getUserInfo () { + axios.request({ + method: "get", + url: `${window.location.origin}/api/user/info`, + headers: {"content-type": "application/json"} + }) + .then(request => this.setState({ info: request.data })) + .catch(console.log); + } + + constructor(props: {}) { + super(props); + + if(this.state.loggedIn) this.getUserInfo() + } + + render () { + return
4 op een rij @@ -69,8 +95,34 @@ export default function HomePage() { Tegen computer
- -
+ +
+ Log in of maak een account aan om je scores op te slaan en toegang te krijgen tot meer functies +
+
+
+
Gebruikersnaam + }}>{this.state.info.username}

Score: 400

0 W @@ -130,6 +182,6 @@ export default function HomePage() {

- ); + } } diff --git a/src/pages/login.tsx b/src/pages/login.tsx index bdaebc6..8528a39 100644 --- a/src/pages/login.tsx +++ b/src/pages/login.tsx @@ -59,7 +59,7 @@ export default function LoginPage() { display: "grid", gridTemplateColumns: "1fr 1fr" }}> - +
-- cgit v1.2.3