import { useState, useEffect } from 'react'; import { View, Text, StyleSheet, ScrollView, KeyboardAvoidingView, Platform, Alert, } from 'react-native'; import { ThemedView } from '@/components/ui/themed-view' import { ThemedText } from '@/components/ui/themed-text' import { Link, useLocalSearchParams, router } from 'expo-router'; import { StatusBar } from 'expo-status-bar'; import { SafeAreaView } from 'react-native-safe-area-context'; import { useThemeColor } from '@/hooks/use-theme-color'; import { Button, Input } from '@/components/ui'; import { useAuth } from '@/context/AuthContext'; export default function Profile() { const { user } = useAuth(); const [firstName, setFirstName] = useState(user.firstName); const [lastName, setLastName] = useState(user.lastName); const [email, setEmail] = useState(user.email); const [password, setPassword] = useState(); const [confirmPassword, setConfirmPassword] = useState(); const [loading, setLoading] = useState(false); const [errors, setErrors] = useState<{ firstName?: string; password?: string; confirmPassword?: string; }>({}); useEffect(() => { setFirstName(user.firstName) setLastName(user.lastName) setEmail(user.email) console.log(user); }, [user]) const backgroundColor = useThemeColor({}, 'background'); const textColor = useThemeColor({}, 'text'); const validateForm = () => { const newErrors: { firstName?: string; email?: string; password?: string; confirmPassword?: string } = {}; if (password) { if (!confirmPassword) { newErrors.confirmPassword = 'Precisa confirmar a senha'; } else { if (password == confirmPassword) { newErrors.confirmPassword = "Senhas não conferem"; } } } else if (!/\S+@\S+\.\S+/.test(email)) { newErrors.email = 'Por favor, use um email válido'; } if (!firstName) { newErrors.firstName = 'É necessário ter um nome'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; } const handleUpdate = async () => { if (!validateForm()) return; const data = { }; data.firstName = firstName data.lastName = lastName data.email = email if (password) { data.password = password } console.log("sending the update") try { await updateUser({ firstName, lastName, email, password }); router.replace('/(tabs)'); } catch (error: any) { Alert.alert('Erro: ', 'Falha ao fazer login'); } } return ( Edite o seu perfil Altere suas configurações