import { useState } from 'react'; import { useNavigate, Link as RouterLink } from 'react-router-dom'; import { Box, Card, CardContent, TextField, Button, Typography, Alert, CircularProgress, Link, Divider, FormControlLabel, Checkbox } from '@mui/material'; import PersonAddOutlinedIcon from '@mui/icons-material/PersonAddOutlined'; import axiosInstance from '../../api/axiosInstance.js'; export default function RegisterPage() { const navigate = useNavigate(); const [form, setForm] = useState({ email: '', nickname: '', password: '', confirmPassword: '' }); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const [accepted, setAccepted] = useState(false); const handleChange = (e) => setForm((prev) => ({ ...prev, [e.target.name]: e.target.value })); const handleSubmit = async (e) => { e.preventDefault(); setError(''); if (form.password !== form.confirmPassword) { setError('Passwörter stimmen nicht überein.'); return; } setLoading(true); try { await axiosInstance.post('/auth/register', { email: form.email, nickname: form.nickname, password: form.password, }); navigate('/login', { state: { registered: true } }); } catch (err) { setError(err.response?.data?.message ?? 'Registrierung fehlgeschlagen'); } finally { setLoading(false); } }; return ( Account erstellen Neuen Admin-Account registrieren {error && {error}} 0 && form.password !== form.confirmPassword} helperText={ form.confirmPassword.length > 0 && form.password !== form.confirmPassword ? 'Passwörter stimmen nicht überein' : '' } /> setAccepted(e.target.checked)} size="small" /> } label={ Ich habe die{' '} Datenschutzerklärung {' '}gelesen und stimme zu. } /> Bereits ein Account?{' '} Zum Login ); }