import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { authService } from '../services/authService'; import { Sparkles, ArrowRight, Loader, Mail, Lock, User as UserIcon } from 'lucide-react'; export default function Login() { const navigate = useNavigate(); const [isLogin, setIsLogin] = useState(true); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [formData, setFormData] = useState({ email: '', password: '', username: '', }); const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(null); try { if (isLogin) { const response = await authService.login(formData.email, formData.password); authService.setTokens(response.tokens.accessToken, response.tokens.refreshToken); navigate('/dashboard'); } else { const response = await authService.register( formData.email, formData.password, formData.username ); authService.setTokens(response.tokens.accessToken, response.tokens.refreshToken); navigate('/dashboard'); } } catch (err: any) { setError(err.response?.data?.message || 'Une erreur s\'est produite'); } finally { setLoading(false); } }; return (
{/* Background Auras */}
{/* Logo & Header */}
🎙️

PODCASTIC

Votre espace audio
{/* Form Card */}
{!isLogin && (
)}
{error && (
⚠️ {error}
)}
{/* Footer */}

Podcastic High-Fidelity Audio © 2026

); }