// JoinRoom.tsx import React, { useEffect, useState } from 'react'; import { TextField, FormLabel, RadioGroup, FormControlLabel, Radio, Box } from '@mui/material'; import LoadingButton from '@mui/lab/LoadingButton'; import LoginContainer from '../../../../components/LoginContainer/LoginContainer'; import ApiService from '../../../../services/ApiService'; const Register: React.FC = () => { const [name, setName] = useState(''); // State for name const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [roles, setRoles] = useState(['teacher']); // Set 'student' as the default role const [connectionError, setConnectionError] = useState(''); const [isConnecting] = useState(false); useEffect(() => { return () => { }; }, []); const handleRoleChange = (role: string) => { setRoles([role]); // Update the roles array to contain the selected role }; const isValidEmail = (email: string) => { // Basic email format validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); }; const register = async () => { if (!isValidEmail(email)) { setConnectionError("Veuillez entrer une adresse email valide."); return; } const result = await ApiService.register(name, email, password, roles); if (result !== true) { setConnectionError(result); return; } }; return ( setName(e.target.value)} placeholder="Votre nom" sx={{ marginBottom: '1rem' }} fullWidth /> setEmail(e.target.value)} placeholder="Adresse courriel" sx={{ marginBottom: '1rem' }} fullWidth type="email" error={!!connectionError && !isValidEmail(email)} helperText={connectionError && !isValidEmail(email) ? "Adresse email invalide." : ""} /> setPassword(e.target.value)} placeholder="Mot de passe" sx={{ marginBottom: '1rem' }} fullWidth /> Choisir votre rôle handleRoleChange(e.target.value)} > } label="Étudiant" /> } label="Professeur" /> S'inscrire ); }; export default Register;