import { Ionicons } from '@expo/vector-icons'; import React, { useState } from 'react'; import { Image, ImageBackground, KeyboardAvoidingView, Platform, Pressable, ScrollView, Text, TextInput, View, StatusBar, } from 'react-native'; import styles from '@/styles/screens/auth/login.styles'; import { useAuth } from '@/assets/contexts/useAuth'; import { router, type Href } from 'expo-router'; export default function Login() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [localError, setLocalError] = useState(null); const { login, isLoading, error } = useAuth(); const handleLogin = async () => { if (!email.trim() || !password.trim()) { setLocalError('Preenche email e palavra-passe.'); return; } setLocalError(null); try { await login(email.trim(), password); router.replace('/home' as Href); } catch { // O erro já é guardado no contexto; evitamos uncaught promise no ecrã. } }; return ( Login Acede às tuas reservas, documentos e informaçoes de viagem. Email* Palavra-passe* setShowPassword((prev) => !prev)} hitSlop={8}> router.push('/recover' as Href)}> Esqueci-me da palavra-passe {!!(localError || error) && {localError || error}} Entrar ); }