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 { colors, spacing, borderRadius } from '../../constants/theme'; export default function RegisterScreen() { const router = useRouter(); 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, backgroundColor: colors.background, }, form: { flex: 1, justifyContent: 'center', padding: spacing.xl, }, title: { fontSize: 28, fontWeight: 'bold', color: colors.text, marginBottom: spacing.sm, }, subtitle: { fontSize: 16, color: colors.textSecondary, marginBottom: spacing.xl, }, inputContainer: { marginBottom: spacing.md, }, label: { fontSize: 14, fontWeight: '500', color: colors.text, marginBottom: spacing.xs, }, input: { backgroundColor: colors.card, borderRadius: borderRadius.md, padding: spacing.md, fontSize: 16, color: colors.text, }, button: { backgroundColor: colors.primary, borderRadius: borderRadius.md, padding: spacing.md, alignItems: 'center', marginTop: spacing.md, }, buttonDisabled: { opacity: 0.6, }, buttonText: { color: colors.textInverse, fontSize: 16, fontWeight: '600', }, linkButton: { marginTop: spacing.lg, alignItems: 'center', }, linkText: { color: colors.primary, fontSize: 14, }, });