import { useState } from "react"; import { useLocation } from "wouter"; import { useLocalAuth } from "@/contexts/LocalAuthContext"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Eye, EyeOff, Loader2, Shield } from "lucide-react"; import { toast } from "sonner"; const ITINOVA_LOGO = "https://d2xsxph8kpxj0f.cloudfront.net/310519663070627318/VepzDyqR8YkJNcqpZ729Bw/itinova-logo_8e653b24.jpg"; const SANTINOVA_LOGO = "https://d2xsxph8kpxj0f.cloudfront.net/310519663070627318/VepzDyqR8YkJNcqpZ729Bw/santinova-logo_b8de54c4.webp"; export default function Login() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [showPassword, setShowPassword] = useState(false); const [loading, setLoading] = useState(false); const { login } = useLocalAuth(); const [, navigate] = useLocation(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!email || !password) return; setLoading(true); try { await login(email, password); navigate("/veille"); } catch (err: unknown) { const msg = err instanceof Error ? err.message : "Erreur de connexion"; toast.error("Connexion échouée", { description: msg }); } finally { setLoading(false); } }; return (
{/* Décoration de fond */}
{/* Logo Itinova */}
Itinova

Veille Stratégique

Direction des Opérations — Itinova

Connexion sécurisée
Entrez vos identifiants pour accéder à l'application
setEmail(e.target.value)} autoComplete="username" required className="h-11" />
setPassword(e.target.value)} autoComplete="current-password" required className="h-11 pr-10" />
{/* Powered by Santinova */}
powered by Santinova
); }