import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { CondoService } from '../services/mockDb'; import { Building, Lock, Mail, AlertCircle } from 'lucide-react'; import { BrandingConfig } from '../types'; interface LoginProps { branding?: BrandingConfig; } export const LoginPage: React.FC = ({ branding }) => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setLoading(true); try { await CondoService.login(email, password); navigate('/'); } catch (err) { setError('Credenziali non valide o errore di connessione.'); } finally { setLoading(false); } }; const appName = branding?.appName || 'CondoPay'; const logoUrl = branding?.logoUrl; const bgUrl = branding?.loginBackgroundUrl; return (
{/* Dynamic Background */} {bgUrl && (
Background
)}
{logoUrl ? ( Logo ) : ( )}

{appName}

Gestione Condominiale Semplice

{error && (
{error}
)}
setEmail(e.target.value)} className="block w-full pl-11 pr-4 py-3 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all text-slate-700 font-medium" placeholder="admin@condominio.it" />
setPassword(e.target.value)} className="block w-full pl-11 pr-4 py-3 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-all text-slate-700 font-medium" placeholder="••••••••" />
© {new Date().getFullYear()} {appName} Manager
); };