import React, { useState } from 'react'; import { View, Text, TextInput, TouchableOpacity, StyleSheet, KeyboardAvoidingView, Platform, Alert } from 'react-native'; import { useRouter } from 'expo-router'; import { register } from '../../services/auth'; import { useThemeContext } from '../../components/ThemeProvider'; import { spacing, borderRadius } from '../../constants/theme'; export default function RegisterScreen() { const router = useRouter(); const { colors } = useThemeContext(); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [isLoading, setIsLoading] = useState(false); const handleRegister = async () => { if (!username || !password || !confirmPassword) { Alert.alert('Error', 'Por favor completa todos los campos'); return; } if (password !== confirmPassword) { Alert.alert('Error', 'Las contraseñas no coinciden'); return; } setIsLoading(true); try { await register(username, password); router.replace('/(tabs)'); } catch (error) { Alert.alert('Error', 'No se pudo crear la cuenta'); } finally { setIsLoading(false); } }; return ( Crear Cuenta Regístrate para empezar Usuario Contraseña Confirmar Contraseña {isLoading ? 'Creando cuenta...' : 'Crear Cuenta'} router.back()} > ¿Ya tienes cuenta? Inicia sesión ); } const styles = StyleSheet.create({ container: { flex: 1, }, form: { flex: 1, justifyContent: 'center', padding: spacing.xl, }, title: { fontSize: 28, fontWeight: 'bold', marginBottom: spacing.sm, }, subtitle: { fontSize: 16, marginBottom: spacing.xl, }, inputContainer: { marginBottom: spacing.md, }, label: { fontSize: 14, fontWeight: '500', marginBottom: spacing.xs, }, input: { borderRadius: borderRadius.md, padding: spacing.md, fontSize: 16, }, button: { backgroundColor: '#7fbf8f', borderRadius: borderRadius.md, padding: spacing.md, alignItems: 'center', marginTop: spacing.md, }, buttonDisabled: { opacity: 0.6, }, buttonText: { color: '#ffffff', fontSize: 16, fontWeight: '600', }, linkButton: { marginTop: spacing.lg, alignItems: 'center', }, linkText: { fontSize: 14, }, });