// src/pages/Auth/RegisterForm.jsx // Regisztrációs űrlap import InputBox from "../../components/Inputs/InputBox" import Button from "../../components/Buttons/Button" import { motion } from "framer-motion" import { useState } from "react" import { register } from "../../api/userApi" import { useNavigate } from "react-router-dom" export default function RegisterForm() { const [lastname, setLastname] = useState("") const [firstname, setFirstname] = useState("") const [username, setUsername] = useState("") const [email, setEmail] = useState("") const [password, setPassword] = useState("") const [confirmPassword, setConfirmPassword] = useState("") const [phone, setPhone] = useState("") const [error, setError] = useState("") const [showErrorPopup, setShowErrorPopup] = useState(false) const navigate = useNavigate() function validateEmail(email) { return /\S+@\S+\.\S+/.test(email) } const handleSubmit = async (e) => { e.preventDefault() setError("") setShowErrorPopup(false) if (!lastname || !firstname || !username || !email || !password || !confirmPassword || !phone) { setError("Minden mező kitöltése kötelező.") return } if (!validateEmail(email)) { setError("Hibás email formátum.") return } if (password.length < 6) { setError("A jelszónak legalább 6 karakter hosszúnak kell lennie.") return } if (password !== confirmPassword) { setError("A jelszavak nem egyeznek.") return } // Backend API try { const response = await register(username, email, password, firstname, lastname, phone) // Check for 201 Created status if (response && response.status === 201) { navigate("/login", { state: { success: true } }) } else { let msg = "Sikertelen regisztráció." if (response && response.data && response.data.error) { msg = response.data.error } setError(msg) setShowErrorPopup(true) setTimeout(() => setShowErrorPopup(false), 2000) } } catch (err) { let msg = "Ismeretlen hiba történt." if (err.response && err.response.data && err.response.data.error) { msg = err.response.data.error } else if (err.message) { msg = err.message } setError(msg) setShowErrorPopup(true) setTimeout(() => setShowErrorPopup(false), 2000) } } return (

Regisztráció

{showErrorPopup && error && (
{error}
)}
setLastname(e.target.value)} /> setFirstname(e.target.value)} /> setUsername(e.target.value)} /> setEmail(e.target.value)} /> setPhone(e.target.value)} /> setPassword(e.target.value)} /> setConfirmPassword(e.target.value)} />