import React, { useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import illustration from "../../assets/illustration_img.png"; import styles from "./Signup.module.css"; import Logo from "../../components/Logo/Logo"; import netconfig from "../../scripts/net/netconfig.js"; export default function Signup() { const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [message, setMessage] = useState(""); const [messageType, setMessageType] = useState(""); const navigate = useNavigate(); const handleSubmit = async (e) => { e.preventDefault(); if (password !== confirmPassword) { setMessageType("error"); setMessage("Passwords do not match."); return; } const payload = { username: name, email: email, password: password, }; try { const response = await fetch(netconfig.auth.register, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(payload), }); if (response.ok) { setMessageType("success"); setMessage("User registered successfully!"); setTimeout(() => { navigate("/login"); }, 1000); } else if (response.status === 409) { setMessageType("error"); setMessage("Email is already taken."); } else { setMessageType("error"); setMessage("Registration failed."); } } catch (error) { console.error("Error:", error); setMessageType("error"); setMessage("Error registering user."); } }; return (
illustration
CREATE AN ACCOUNT
setName(e.target.value)} placeholder="Enter your username" required />
setEmail(e.target.value)} placeholder="Enter your email" required />
setPassword(e.target.value)} placeholder="Enter your password" required />
setConfirmPassword(e.target.value)} placeholder="Confirm your password" required />
{message && (

{message}

)}

Have an account? Login

); }