84 lines
2.4 KiB
JavaScript
84 lines
2.4 KiB
JavaScript
import { useState } from 'react'
|
|
import './Login.css'
|
|
|
|
function Login({ onLogin }) {
|
|
const [credentials, setCredentials] = useState({
|
|
username: '',
|
|
password: ''
|
|
})
|
|
const [error, setError] = useState('')
|
|
|
|
const handleSubmit = (e) => {
|
|
e.preventDefault()
|
|
setError('')
|
|
|
|
// Get credentials from runtime config (set via Helm values)
|
|
const ADMIN_USERNAME = window.ENV?.VITE_ADMIN_USERNAME || import.meta.env.VITE_ADMIN_USERNAME || 'admin'
|
|
const ADMIN_PASSWORD = window.ENV?.VITE_ADMIN_PASSWORD || import.meta.env.VITE_ADMIN_PASSWORD || 'wedding2025'
|
|
|
|
if (credentials.username === ADMIN_USERNAME && credentials.password === ADMIN_PASSWORD) {
|
|
// Set a simple auth token (not from Google)
|
|
localStorage.setItem('userId', 'admin-user')
|
|
localStorage.setItem('userEmail', 'admin@admin.local')
|
|
onLogin()
|
|
} else {
|
|
setError('שם משתמש או סיסמה שגויים')
|
|
}
|
|
}
|
|
|
|
const handleChange = (e) => {
|
|
const { name, value } = e.target
|
|
setCredentials(prev => ({
|
|
...prev,
|
|
[name]: value
|
|
}))
|
|
}
|
|
|
|
return (
|
|
<div className="login-page" dir="rtl">
|
|
<div className="login-container">
|
|
<h1>💒 כניסה לניהול רשימת מוזמנים</h1>
|
|
<p className="login-subtitle">הזן שם משתמש וסיסמה לגישה</p>
|
|
|
|
<form onSubmit={handleSubmit} className="login-form">
|
|
<div className="form-group">
|
|
<label htmlFor="username">שם משתמש</label>
|
|
<input
|
|
type="text"
|
|
id="username"
|
|
name="username"
|
|
value={credentials.username}
|
|
onChange={handleChange}
|
|
placeholder="הזן שם משתמש"
|
|
required
|
|
autoComplete="username"
|
|
/>
|
|
</div>
|
|
|
|
<div className="form-group">
|
|
<label htmlFor="password">סיסמה</label>
|
|
<input
|
|
type="password"
|
|
id="password"
|
|
name="password"
|
|
value={credentials.password}
|
|
onChange={handleChange}
|
|
placeholder="הזן סיסמה"
|
|
required
|
|
autoComplete="current-password"
|
|
/>
|
|
</div>
|
|
|
|
{error && <div className="error-message">{error}</div>}
|
|
|
|
<button type="submit" className="btn btn-primary">
|
|
התחבר
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default Login
|