import { useState } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { useAuthStore } from '@/stores/auth'; import { Network, Eye, EyeOff } from 'lucide-react'; import LoadingSpinner from '@/components/LoadingSpinner'; export default function LoginPage() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const { login } = useAuthStore(); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setLoading(true); try { await login(email, password); navigate('/'); } catch (err: unknown) { setError(err instanceof Error ? err.message : 'Login failed'); } finally { setLoading(false); } }; return (
{/* Logo */}

NetworkCRM

Sign in to manage your network

{/* Card */}
{error && (
{error}
)}
setEmail(e.target.value)} required className="w-full px-3.5 py-2.5 border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 text-slate-900 dark:text-slate-100 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-shadow" placeholder="you@example.com" />
Forgot password?
setPassword(e.target.value)} required className="w-full px-3.5 py-2.5 pr-10 border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 text-slate-900 dark:text-slate-100 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-shadow" placeholder="••••••••" />
); }