Spaces:
Sleeping
Sleeping
| import React, { useState } from 'react'; | |
| import { createUserWithEmailAndPassword } from "firebase/auth"; | |
| import { auth } from '/src/services/firebase.js'; | |
| import { useNavigate } from 'react-router-dom'; | |
| const SignUp = () => { | |
| const [name, setName] = useState(''); | |
| const [email, setEmail] = useState(''); | |
| const [password, setPassword] = useState(''); | |
| const [error, setError] = useState(''); | |
| const navigate = useNavigate(); | |
| const handleSignUp = async (e) => { | |
| e.preventDefault(); | |
| setError(''); | |
| try { | |
| await createUserWithEmailAndPassword(auth, email, password); | |
| navigate('/chat'); // Redirect to chat on successful sign-up | |
| } catch (err) { | |
| setError(err.message); | |
| } | |
| }; | |
| return ( | |
| <div className="auth-container"> | |
| <div className="auth-form"> | |
| <h2>Sign up</h2> | |
| <form onSubmit={handleSignUp}> | |
| <div className="form-group"> | |
| <label>Name</label> | |
| <input | |
| type="text" | |
| value={name} | |
| onChange={(e) => setName(e.target.value)} | |
| placeholder="Enter your name" | |
| required | |
| /> | |
| </div> | |
| <div className="form-group"> | |
| <label>Email</label> | |
| <input | |
| type="email" | |
| value={email} | |
| onChange={(e) => setEmail(e.target.value)} | |
| placeholder="Enter your email" | |
| required | |
| /> | |
| </div> | |
| <div className="form-group"> | |
| <label>Password</label> | |
| <input | |
| type="password" | |
| value={password} | |
| onChange={(e) => setPassword(e.target.value)} | |
| placeholder="Enter your password" | |
| required | |
| /> | |
| </div> | |
| {error && <p className="error-message">{error}</p>} | |
| <button type="submit" className="btn-primary">Sign Up</button> | |
| </form> | |
| </div> | |
| </div> | |
| ); | |
| }; | |
| export default SignUp; |