diff options
author | Biswakalyan Bhuyan <biswa@surgot.in> | 2024-08-01 17:35:27 +0530 |
---|---|---|
committer | Biswakalyan Bhuyan <biswa@surgot.in> | 2024-08-01 17:35:27 +0530 |
commit | fb04271b5288e8fb5891b7d6326f4806d12b82d5 (patch) | |
tree | e459c3e1f8bb6e168becdddd0d48779135d91a7f /panel/src/pages/LoginPage.jsx | |
parent | 4bb13ee84f6bb51cba6544ccd0690ab2049512a9 (diff) | |
parent | b3c07fd9f1664dda4f16357aaca74dff8226401d (diff) | |
download | admin-panel-fb04271b5288e8fb5891b7d6326f4806d12b82d5.tar.gz admin-panel-fb04271b5288e8fb5891b7d6326f4806d12b82d5.tar.bz2 admin-panel-fb04271b5288e8fb5891b7d6326f4806d12b82d5.zip |
Merge remote-tracking branch 'project/master'
Diffstat (limited to 'panel/src/pages/LoginPage.jsx')
-rw-r--r-- | panel/src/pages/LoginPage.jsx | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/panel/src/pages/LoginPage.jsx b/panel/src/pages/LoginPage.jsx new file mode 100644 index 0000000..f763325 --- /dev/null +++ b/panel/src/pages/LoginPage.jsx @@ -0,0 +1,62 @@ +import React, { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; // Import useNavigate +import { signInWithEmailAndPassword } from 'firebase/auth'; +import { auth } from '../firebase'; + +const LoginPage = () => { + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [error, setError] = useState(''); + const navigate = useNavigate(); // Get the navigation function + + const handleLogin = async () => { + console.log('Attempting login...'); + console.log('Email:', email); + console.log('Password:', password); + + if (password.length < 8) { + setError('The password should be minimum 8 digits'); + console.log('Error:', 'The password should be minimum 8 digits'); + return; + } + + try { + await signInWithEmailAndPassword(auth, email, password); + console.log('Login successful'); + navigate('/dashboard'); // Redirect to the dashboard after successful login + } catch (error) { + setError(error.message); + console.log('Error:', error.message); + } + }; + + return ( + <div className="container mx-auto flex items-center justify-center min-h-screen bg-gray-100"> + <div className="bg-white p-6 rounded shadow-md w-full max-w-sm"> + <h4 className="mb-4 text-center">Login</h4> + <div className="mb-4"> + <label>Email</label> + <input + type="email" + value={email} + onChange={(e) => setEmail(e.target.value)} + className="form-control" + /> + </div> + <div className="mb-4"> + <label>Password</label> + <input + type="password" + value={password} + onChange={(e) => setPassword(e.target.value)} + className="form-control" + /> + </div> + {error && <p className="text-danger">{error}</p>} + <button onClick={handleLogin} className="btn btn-primary w-full">Login</button> + </div> + </div> + ); +}; + +export default LoginPage; |