import React, { useState } from 'react'; import { View, Text, TouchableOpacity, StyleSheet, Alert, ActivityIndicator, SafeAreaView, KeyboardAvoidingView, Platform, } from 'react-native'; import { useRouter } from 'expo-router'; import { usuariosService } from '../../src/lib/supabase'; import { Colors } from '../../src/components/common/theme'; import { useColorScheme } from '../../src/hooks/use-color-scheme'; import { Lock, Mail } from 'lucide-react-native'; import { Input } from '../../src/components/common/input'; import { Button } from '../../src/components/common/button'; export default function LoginScreen() { const router = useRouter(); const [email, setEmail] = useState(''); const [palavraPasse, setPalavraPasse] = useState(''); const [idUsuario, setIdUsuario] = useState(''); const [usuario, setUsuario] = useState(''); const [loading, setLoading] = useState(false); const colorScheme = useColorScheme(); const theme = colorScheme === 'dark' ? 'dark' : 'light'; const primary = Colors[theme].primary; const handleLogin = async () => { // Validação dos campos if (!email || !palavraPasse || !idUsuario || !usuario) { Alert.alert('Erro', 'Por favor, preencha todos os campos'); return; } // Validação de email const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(email)) { Alert.alert('Erro', 'Email inválido'); return; } setLoading(true); try { // login no Supabase const { data, error } = await usuariosService.login(email, palavraPasse); if (error) { Alert.alert('Erro', 'Email ou palavra passe incorretos'); return; } if (data) { Alert.alert('Sucesso', `Bem-vindo, ${(data as any).usuario || 'usuário'}!`); // quando o login é bem‑sucedido, vai para a página inicial router.replace('/inicio'); } } catch (err) { Alert.alert('Erro', 'Erro ao conectar ao servidor'); console.error(err); } finally { setLoading(false); } }; return ( Fluxup Entre na sua conta {/* Campo de Email */} {/* Campo de Palavra Passe */} {/* Campo de ID Usuário */} {/* Campo de Usuário */} {/* Botão de Login */}