import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import styles from './Register.module.css'; import logo from '/logos/PowerOn.png'; import agentDiagram from '/logos/Frame 43.png'; import { useRegister, useMsalRegister } from '../hooks/useAuthentication'; interface RegisterFormData { username: string; password: string; confirmPassword: string; email: string; fullName: string; } function Register() { const navigate = useNavigate(); const { register, error: registerError, isLoading } = useRegister(); const { registerWithMsal, error: msalError, isLoading: msalLoading } = useMsalRegister(); const [formData, setFormData] = useState({ username: '', password: '', confirmPassword: '', email: '', fullName: '' }); const [validationError, setValidationError] = useState(null); const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); setValidationError(null); }; const validateForm = (): boolean => { if (!formData.username || !formData.password || !formData.confirmPassword || !formData.email || !formData.fullName) { setValidationError('Bitte füllen Sie alle Pflichtfelder aus.'); return false; } if (formData.password !== formData.confirmPassword) { setValidationError('Die Passwörter stimmen nicht überein.'); return false; } if (!formData.email.includes('@')) { setValidationError('Bitte geben Sie eine gültige E-Mail-Adresse ein.'); return false; } return true; }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!validateForm()) { return; } try { const { confirmPassword, ...registrationData } = formData; await register(registrationData); navigate('/login', { state: { registered: true, message: 'Registration erfolgreich. Bitte melden Sie sich an.' } }); } catch (err) { console.error('Registration failed:', err); } }; const handleMsalRegister = async () => { try { await registerWithMsal(); navigate('/login', { state: { registered: true, message: 'Microsoft Registration erfolgreich. Bitte melden Sie sich an.' } }); } catch (err) { console.error('Microsoft registration failed:', err); } }; return (
PowerOn Logo navigate('/')} style={{ cursor: 'pointer' }} />

Organisation registrieren

{/* Microsoft Register Button */}
oder
{(validationError || registerError || msalError) && (
{validationError || registerError || msalError}
)}
Bereits registriert?
Agent Diagram
); } export default Register;