Spaces:
Sleeping
Sleeping
| import React, { useState } from 'react'; | |
| import { signInWithEmailAndPassword } from "firebase/auth"; | |
| import { auth } from '../../services/firebase.js'; | |
| import { useNavigate, Link } from 'react-router-dom'; | |
| const Login = () => { | |
| const [email, setEmail] = useState(''); | |
| const [password, setPassword] = useState(''); | |
| const [error, setError] = useState(''); | |
| const navigate = useNavigate(); | |
| const handleLogin = async (e) => { | |
| e.preventDefault(); | |
| setError(''); | |
| try { | |
| await signInWithEmailAndPassword(auth, email, password); | |
| navigate('/chat'); // Redirect to chat on successful login | |
| } catch (err) { | |
| setError(err.message); | |
| } | |
| }; | |
| return ( | |
| <div className="auth-container"> | |
| <div className="auth-form"> | |
| <h2>Login to Your Account</h2> | |
| <form onSubmit={handleLogin}> | |
| <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>} | |
| <div className="forgot-password"> | |
| <Link to="/forgot-password">Forgot Password?</Link> | |
| </div> | |
| <button type="submit" className="btn-primary">Login</button> | |
| </form> | |
| </div> | |
| </div> | |
| ); | |
| }; | |
| export default Login; |