import React from "react"; import { Button, Card, Form, Alert, Container } from "react-bootstrap"; import { apiClient } from "../utils/httpClients"; // import { guard } from "../utils/routing"; export default class Signup extends React.Component { constructor(props) { super(props); this.state = { newUser: null, alertShow: false, alertKey: null, alertMsg: null }; this.state.newUser = { email: null, firstName: null, lastName: null, phone: null, password: null }; this.warnUser("Internal server error. Please try again later.", "danger"); const sleep = ms => new Promise(res => setTimeout(res, ms)); this.setState({ alertKey: "danger" }, () => { console.log(this.state.alertKey); }); console.log("Hello"); } async registerUser() { const sleep = ms => new Promise(res => setTimeout(res, ms)); const res = await apiClient.post("/user", this.state.newUser); if (res.status === 200) { this.warnUser("You are successfully signed up!", "success"); sleep(3000).then(() => { this.context.navigate("/dashboard", { replace: true }); }); } else if (res === 409) { this.warnUser("This user already exists. Try logging in instead.", "danger"); } else if (res === 400) { this.warnUser("Missing required fields.", "danger"); } else { this.warnUser("Internal server error. Please try again later.", "danger"); } } setUserState(event) { let newUser = this.state.user; newUser[event.target.controlId] = event.target.value; this.setState({user: newUser}); } warnUser(msg, key) { this.setState({alertMsg: msg}); this.setState({alertKey: key}); } render() { return (
{this.state.alertMsg} Sign up with us
Welcome to Sports Matcher!
First name Last name E-mail Phone number Password
); } }