import React, { useState } from 'react'; import { View, Text, StyleSheet, KeyboardAvoidingView, Platform, ScrollView, Alert } from 'react-native'; import { InputText } from '../components/InputText'; import { Button } from '../components/Button'; import { useAuth } from '../hooks/useAuth'; export const LoginScreen = ({ navigation }: any) => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [errors, setErrors] = useState<{ email?: string; password?: string }>({}); const { login, loading } = useAuth(); const validateForm = () => { const newErrors: { email?: string; password?: string } = {}; if (!email.trim()) { newErrors.email = 'L\'email est requis'; } else if (!/\S+@\S+\.\S+/.test(email)) { newErrors.email = 'Email invalide'; } if (!password) { newErrors.password = 'Le mot de passe est requis'; } else if (password.length < 6) { newErrors.password = 'Le mot de passe doit contenir au moins 6 caractères'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleLogin = async () => { if (!validateForm()) return; try { await login(email.trim(), password); } catch (error: any) { Alert.alert('Erreur de connexion', error.message); } }; return ( 💰 WalletTracker Gérez votre budget facilement { setEmail(text); setErrors({ ...errors, email: undefined }); }} error={errors.email} keyboardType="email-address" autoCapitalize="none" autoComplete="email" /> { setPassword(text); setErrors({ ...errors, password: undefined }); }} error={errors.password} secureTextEntry autoCapitalize="none" autoComplete="password" />