From d2c2cc62a4c2e1ac10f8434bea7bb834da820869 Mon Sep 17 00:00:00 2001 From: lonkaars Date: Sat, 16 Jan 2021 11:40:36 +0100 Subject: semi working next project --- src/pages/game.tsx | 84 --------------------- src/pages/home.tsx | 195 ------------------------------------------------- src/pages/login.tsx | 71 ------------------ src/pages/register.tsx | 99 ------------------------- src/pages/settings.tsx | 34 --------- 5 files changed, 483 deletions(-) delete mode 100644 src/pages/game.tsx delete mode 100644 src/pages/home.tsx delete mode 100644 src/pages/login.tsx delete mode 100644 src/pages/register.tsx delete mode 100644 src/pages/settings.tsx (limited to 'src/pages') diff --git a/src/pages/game.tsx b/src/pages/game.tsx deleted file mode 100644 index 513fc7a..0000000 --- a/src/pages/game.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { CSSProperties } from 'react'; - -import { NavBar } from '../components/navbar'; -import { CenteredPage } from '../components/page'; -import { VoerBord } from '../components/voerBord'; -import { DialogBox } from '../components/dialogBox'; -import { CurrentGameSettings } from '../components/gameSettings'; -import { Button, SearchBar } from '../components/ui'; -import { GameBar } from '../components/gameBar'; - -import WifiTetheringRoundedIcon from '@material-ui/icons/WifiTetheringRounded'; -import LinkRoundedIcon from '@material-ui/icons/LinkRounded'; - -var InviteButtonStyle: CSSProperties = { - backgroundColor: "var(--page-background)", - height: 160, - padding: 12 -} - -var InviteButtonIconStyle: CSSProperties = { - fontSize: 100, - position: "absolute", - top: 12, - left: "50%", - transform: "translateX(-50%)" -} - -var InviteButtonLabelStyle: CSSProperties = { - position: "absolute", - bottom: 12, - left: "50%", - transform: "translateX(-50%)", - textAlign: "center", - color: "var(--text-alt)", - width: 136, - fontSize: 20, - userSelect: "none" -} - -export default function GamePage() { - return ( -
- - -
- - -
- - -
- - -
- -
-
-
- ); -} - diff --git a/src/pages/home.tsx b/src/pages/home.tsx deleted file mode 100644 index f298846..0000000 --- a/src/pages/home.tsx +++ /dev/null @@ -1,195 +0,0 @@ -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, Button } from '../components/ui'; -import { AccountAvatar } from '../components/account'; -import { ToastArea, Toast } from '../components/toast'; - -import VideogameAssetIcon from '@material-ui/icons/VideogameAsset'; -import ExtensionIcon from '@material-ui/icons/Extension'; - -import Icon from '@mdi/react'; -import { mdiRobotExcited } from '@mdi/js'; - -var GameModeIconStyle: CSSProperties = { - fontSize: 64, - width: 64, - height: 64, - display: "inline-block", - position: "absolute", - top: 24, - left: "50%", - transform: "translateX(-50%)" -} - -var GameModeTextStyle: CSSProperties = { - whiteSpace: "nowrap", - display: "inline-block", - position: "absolute", - bottom: 24, - left: "50%", - transform: "translateX(-50%)", - userSelect: "none", - fontWeight: 500 -} - -var SquareSize: CSSProperties = { - width: 90, - height: 90 -} - -var LeftAlignedTableColumn: CSSProperties = { - textAlign: "left", - paddingLeft: 16 -} - -var RightAlignedTableColumn: CSSProperties = { - textAlign: "right", - paddingRight: 16 -} - -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 - - - Nieuw spel -
-
- - - Puzzels -
-
- - - Tegen computer -
-
- -
- Log in of maak een account aan om je scores op te slaan en toegang te krijgen tot meer functies -
-
-
-
-
- -
-
-

{this.state.info.username}

-

Score: 400

-

- 0 W - / - 0 V - / - 0 G -

-
-
-
- -

Recente partijen

- - - - - - - - - - - - - - - - - - - -
TegenstanderUitkomstZettenDatum
Naam hierGewonnen7Vandaag
Nog meer namenGelijkspel42Gisteren
-
- -

Nieuws ofzo

-

Chess.com heeft heel veel troep waar niemand naar kijkt

-
-
-
- } -} - diff --git a/src/pages/login.tsx b/src/pages/login.tsx deleted file mode 100644 index 8528a39..0000000 --- a/src/pages/login.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { v4 as uuidv4 } from 'uuid'; -import axios from 'axios'; - -import { NavBar } from '../components/navbar'; -import { CenteredPage } from '../components/page'; -import { Vierkant, Input, Button } from '../components/ui'; - -var ids = { - email: uuidv4(), - password: uuidv4() -} - -function submitLogin() { - var formData = { - email: (document.getElementById(ids.email) as HTMLInputElement).value, - password: (document.getElementById(ids.password) as HTMLInputElement).value - } - - if ( !formData.email || - !formData.password ) { - alert("Vul alsjeblieft alle velden in!"); - return; - } - - axios({ - method: "post", - url: `${window.location.origin}/api/auth/login`, - headers: {"content-type": "application/json"}, - data: formData - }) - .then(() => window.location.pathname = "/") - .catch(error => { - if (error.response.status === 401) { - alert("Verkeerde gebruikersnaam/wachtwoord combinatie!") - return; - } - alert("Er is iets fout gegaan!"); - }); -} - -export default function LoginPage() { - return ( -
- - -
- - - -
- - -
-
-
-
-
- ); -} - diff --git a/src/pages/register.tsx b/src/pages/register.tsx deleted file mode 100644 index e0f98de..0000000 --- a/src/pages/register.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { NavBar } from '../components/navbar'; -import { CenteredPage } from '../components/page'; -import { Vierkant, Input, Button } from '../components/ui'; - -import { v4 as uuidv4 } from 'uuid'; -import { validate as validateEmail } from 'email-validator'; -import axios from 'axios'; - -var ids = { - username: uuidv4(), - email: uuidv4(), - password: uuidv4() -} - -function submitRegister() { - var formData = { - username: (document.getElementById(ids.username) as HTMLInputElement).value, - email: (document.getElementById(ids.email) as HTMLInputElement).value, - password: (document.getElementById(ids.password) as HTMLInputElement).value - } - - if ( !formData.username || - !formData.email || - !formData.password ) { - alert("Vul alsjeblieft alle velden in!"); - return; - } - - var passwordRegex: RegExp = /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{8,}$/; - /* - * ^ Begin string - * (?=.*[A-Z]) Minimaal één hoofdletter - * (?=.*[a-z]) Minimaal één kleine letter - * (?=.*[0-9]) Minimaal één getal - * .{8,} Minimaal acht tekens in lengte - * $ Ende string - * https://stackoverflow.com/questions/5142103/regex-to-validate-password-strength - */ - - //TODO: alert -> react toast / material-ui snackbar - if ( formData.username.length > 35 ) { - alert("Je gebruikersnaam kan maximaal 35 tekens lang zijn!"); - return; - } - - if ( !validateEmail(formData.email) ) { - alert("Voer alsjeblieft een geldig e-mail adres in!"); - return; - } - - //TODO: wachtwoord max 72 tekens ivm bcrypt - if ( !formData.password.match(passwordRegex) ) { - alert("Je wachtwoord moet minimaal 8 tekens lang zijn en een hoofdletter, kleine letter, en een nummer bevatten!"); - return; - } - - axios({ - method: "post", - url: `${window.location.origin}/api/auth/signup`, - headers: {"content-type": "application/json"}, - data: formData - }) - .then(() => { - //TODO: email verificatie - // redirect naar home, automatische login - window.location.pathname = "/"; - }) - .catch(error => { - alert("Er is iets fout gegaan!"); - console.log(error); - }); -} - -export default function RegisterPage() { - return ( -
- - -
- -
- - - - -
-
-
-
-
- ); -} - diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx deleted file mode 100644 index 2daa90b..0000000 --- a/src/pages/settings.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { CSSProperties } from 'react'; - -import { NavBar } from '../components/navbar'; -import { CenteredPage, PageTitle } from '../components/page'; -import { Vierkant } from '../components/ui'; -/* import { AccountAvatar } from '../components/account'; */ -import { CurrentGameSettings, EditGameSettings } from '../components/gameSettings'; - -var SettingsSectionHeaderStyle: CSSProperties = { - marginBottom: 24 -} - -export default function SettingsPage() { - return ( -
- - - Instellingen - -

Account

-
- -

Kleuren

-
- -

Standaard spelregels

- -
- -
-
- ); -} - -- cgit v1.2.3