diff options
Diffstat (limited to 'pages/login.tsx')
| -rw-r--r-- | pages/login.tsx | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/pages/login.tsx b/pages/login.tsx new file mode 100644 index 0000000..0061c70 --- /dev/null +++ b/pages/login.tsx @@ -0,0 +1,66 @@ +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'; + +function submitLogin() { + var formData = { + email: (document.getElementById("email") as HTMLInputElement).value, + password: (document.getElementById("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 ( + <div> + <NavBar/> + <CenteredPage width={500} style={{ height: "100vh" }}> + <div style={{ + position: "relative", + top: "50%", + transform: "translateY(-50%)", + margin: "0 auto", + textAlign: "center" + }}> + <Vierkant> + <Input id="email" label="email of gebruikersnaam" style={{ marginBottom: 12 }}></Input> + <Input id="password" label="wachtwoord" type="password"></Input> + <div style={{ + marginTop: 24, + gridGap: 24, + display: "grid", + gridTemplateColumns: "1fr 1fr" + }}> + <Button href="/register" text="Registreren" style={{ backgroundColor: "var(--background-alt)"}}></Button> + <Button text="Inloggen" onclick={submitLogin}></Button> + </div> + </Vierkant> + </div> + </CenteredPage> + </div> + ); +} + |