import React, {useState} from 'react'; import {StyleSheet, ActivityIndicator, SafeAreaView, View, Platform, KeyboardAvoidingView} from 'react-native'; import {useAuthStore} from '@/store/authStore'; import {useRouter} from 'expo-router'; import {Box} from "@/components/ui/box" import {Button, ButtonText, ButtonIcon} from "@/components/ui/button" import {ArrowRightIcon, EyeIcon, EyeOffIcon} from "@/components/ui/icon" import {Center} from "@/components/ui/center" import {Heading} from "@/components/ui/heading" import {Input, InputField, InputIcon, InputSlot} from "@/components/ui/input" import {VStack} from "@/components/ui/vstack" import {Text} from "@/components/ui/text"; export default function Registration() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [firstName, setFirstName] = useState(''); const [lastName, setLastName] = useState(''); const [emailError, setEmailError] = useState(''); const [showPassword, setShowPassword] = useState(false) const {signUp, isLoading} = useAuthStore(); const router = useRouter(); const handleInternalRegistration = async () => { if (!email || !password || !firstName || !lastName) { alert('Proszę uzupełnić wszystkie pola'); return; } if (!validateEmail(email)) { setEmailError('Nieprawidłowy format adresu email'); return; } try { await signUp({email, password, firstName, lastName}); alert(`Zalogowano jako ${email}`); router.replace('/'); } catch (e) { alert("Błąd logowania: " + (e.response?.data?.message || e.message)); } } const validateEmail = (email) => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); }; const handleShowPassword = () => { setShowPassword((showState) => { return !showState }) } if (isLoading) { return ( ); } return (
Rejestracja {/* */} {/* */} {emailError ? {emailError} : null} { setEmail(text); if (text && !validateEmail(text)) { setEmailError('Nieprawidłowy format adresu email'); } else { setEmailError(''); } }} />
); } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', }, formContainer: { width: '80%', }, input: { borderWidth: 1, borderColor: '#ddd', borderRadius: 5, marginBottom: 15, padding: 10, }, errorText: { color: 'red', marginBottom: 10, }, signupbutton: { fontWeight: '300', textAlign: 'left', }, });